- 帖子
- 27
- 主題
- 7
- 精華
- 0
- 積分
- 38
- 點名
- 0
- 作業系統
- Win 7
- 軟體版本
- Office 2007
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2012-9-19
- 最後登錄
- 2014-2-18
|
各位前輩好
目前正在寫一個程式,要抓取個股的財報資料,並整理到同一表格
執行的excel為財報統計表.xlsx
A1 = 1101, A2 = 1102, A3 = 1103...等個股代碼
個股財報為 1101季報、1102季報...等,excel頁面如下圖
程式碼如下
執行後會產生 "陣列索引超出範圍"的視窗
Sub Getdata()
For i = 2 To 5
Dim WB1 As Workbook
Workbooks.Open Filename:="C:\Users\user\Documents\KT\投資理財\Excel分析模組\" & Range("A" & i) & "季報.xlsx", UpdateLinks:=False, ReadOnly:=True
Set WB1 = ActiveWorkbook
With Workbooks(財報統計表).Worksheets("sheet1")
Range("E" & i).FormulaR1C1 = "=[" & Range("A" & i) & "季報.xlsx]ISQ!R4C2"
Range("F" & i).FormulaR1C1 = "=[" & Range("A" & i) & "季報.xlsx]ISQ!R5C2"
End With
WB1.Close
Next i
End Sub
若使用"On Error Resume Next"
程式執行會讀取正確資料,但我還是想知道真正問題出在哪...
1. 請教錯誤出現在哪個地方?
一開始測試可執行 Range("E" & i).FormulaR1C1 = "=[1101季報.xlsx]ISQ!R4C2"
修改後, 加入變數便產生錯誤 Range("E" & i).FormulaR1C1 = "=[" & Range("A" & i) & "季報.xlsx]ISQ!R4C2
2. With sheet1的情況下,不是應該都要寫成 " .range(....) "嗎?為何在此不必增加 "."呢?
謝謝各位前輩指教~ |
|