- 帖子
- 27
- 主題
- 7
- 精華
- 0
- 積分
- 38
- 點名
- 0
- 作業系統
- Win 7
- 軟體版本
- Office 2007
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2012-9-19
- 最後登錄
- 2014-2-18
|
有關Vlookup的用法
各位前輩好
使用Vlookup的時候碰到一個問題
資料夾當中有各公司的財報,開啟一個檔案想擷取各公司財報中的部分資訊
程式碼如附檔,我總共試了A~D共4種方法,前兩種可行,後兩種不可行- Private Sub CommandButton1_Click()
- Dim StartTime, LastRow
- StartTime = Timer
- LastRow = Sheets(1).Range("A2").End(xlDown).Row '找出最後一筆資料
- Application.ScreenUpdating = False
-
- For i = 2 To LastRow
-
- Dim A
- A = Range("A" & i).Value
- Workbooks.Open Filename:="C:\Users\KT\Documents\2014_backup\KT\投資理財\Excel分析模組\" & A & "季報.xlsx", UpdateLinks:=False, ReadOnly:=True
- '方法A 指定儲存格
- Range("E" & i).FormulaR1C1 = "=[" & A & "季報.xlsx]ISQ!R4C2"
-
- '方法B VLookup
-
- Range("E" & i).FormulaR1C1 = "=VLOOKUP(R[-" & i - 1 & "]C,[" & Range("A" & i).Value & "季報.xlsx]ISQ!R1C1:R52C9, 2, FALSE)"
-
- '方法C --> 不可行, 顯示錯誤'1004' 應用程式或物件定義上的錯誤
- Range("E2").FormulaR1C1 = _
- "=VLOOKUP(R[-1]C,[1101季報.xlsx]ISQ!$A$1:$J$58,2,FALSE)"
-
- '方法D --> 不可行, 編譯錯誤 必須是陳述式的結尾
- Range("E" & i).FormulaR1C1 = "=VLOOKUP(Range("E2").value,[" & Range("A" & i).Value & "季報.xlsx]ISQ!R1C1:R52C9, 2, FALSE)"
-
- Windows(A & "季報.xlsx").Close
-
- Next i
-
- Application.ScreenUpdating = True
- EndTime = Timer
- MsgBox "本次下載共花費:" & EndTime - StartTime & "秒"
- End Sub
複製代碼 想請前輩指導為何方法C與D會發生錯誤
謝謝 |
|