返回列表 上一主題 發帖

有關Vlookup的用法

有關Vlookup的用法

各位前輩好
使用Vlookup的時候碰到一個問題

資料夾當中有各公司的財報,開啟一個檔案想擷取各公司財報中的部分資訊


程式碼如附檔,我總共試了A~D共4種方法,前兩種可行,後兩種不可行
  1. Private Sub CommandButton1_Click()

  2.     Dim StartTime, LastRow
  3.     StartTime = Timer
  4.     LastRow = Sheets(1).Range("A2").End(xlDown).Row '找出最後一筆資料
  5.     Application.ScreenUpdating = False
  6.    
  7.     For i = 2 To LastRow
  8.         
  9.         Dim A
  10.             A = Range("A" & i).Value      
  11.             Workbooks.Open Filename:="C:\Users\KT\Documents\2014_backup\KT\投資理財\Excel分析模組\" & A & "季報.xlsx", UpdateLinks:=False, ReadOnly:=True

  12.         '方法A 指定儲存格
  13.                  Range("E" & i).FormulaR1C1 = "=[" & A & "季報.xlsx]ISQ!R4C2"
  14.         
  15.         '方法B VLookup
  16.             
  17.                     Range("E" & i).FormulaR1C1 = "=VLOOKUP(R[-" & i - 1 & "]C,[" & Range("A" & i).Value & "季報.xlsx]ISQ!R1C1:R52C9, 2, FALSE)"
  18.        
  19.         '方法C  --> 不可行, 顯示錯誤'1004' 應用程式或物件定義上的錯誤

  20.                 Range("E2").FormulaR1C1 = _
  21.                         "=VLOOKUP(R[-1]C,[1101季報.xlsx]ISQ!$A$1:$J$58,2,FALSE)"
  22.            
  23.         '方法D  --> 不可行, 編譯錯誤 必須是陳述式的結尾

  24.                 Range("E" & i).FormulaR1C1 = "=VLOOKUP(Range("E2").value,[" & Range("A" & i).Value & "季報.xlsx]ISQ!R1C1:R52C9, 2, FALSE)"
  25.                                                  
  26.          Windows(A & "季報.xlsx").Close
  27.          
  28.     Next i
  29.    
  30.     Application.ScreenUpdating = True
  31.     EndTime = Timer
  32.     MsgBox "本次下載共花費:" & EndTime - StartTime & "秒"

  33. End Sub
複製代碼
想請前輩指導為何方法C與D會發生錯誤
謝謝

回復 2# stillfish00


多謝您的指教
學到很多啊!!
果然可以使用了
謝謝!!

TOP

        靜思自在 : 發脾氣是短暫的發瘋。
返回列表 上一主題