Excel VBA Vlookup返回 – 错误2042

我试图做一个Vlookup,但它返回错误2042,即使有一场比赛。 我无法弄清楚代码有什么问题。 任何帮助将不胜感激。

Private Sub F6P_SORT() Dim targetWorkbook As Workbook Dim sourceSheet As Worksheet Dim targetSheet As Worksheet Dim LastRow As Long Set targetWorkbook = Application.ActiveWorkbook Set targetSheet = targetWorkbook.Worksheets("MTD") On Error Resume Next Dim Table1 As Range Dim Table2 As Range Dim Table3 As Range Dim IniName_Row As Long Dim IniName_Clm As Long LastRow = targetSheet.Range("A65536").End(xlUp).Row Set Table1 = targetSheet.Range("A2:A" & LastRow) ' CC/IO from MTD Set Table3 = targetSheet.Range("F2:F" & LastRow) ' Ini Name to MTD Set sourceSheet = targetWorkbook.Worksheets("IO Lookup") LastRow = sourceSheet.Range("A65536").End(xlUp).Row Set Table2 = Sheet1.Range("A2:D" & LastRow) ' IO from IO Lookup IniName_Row = Table3.Row IniName_Clm = Table3.Column For Each cl In Table1 targetSheet.Cells(IniName_Row, IniName_Clm) = Application.VLookup(cl, Table2.Value, 4, False) IniName_Row = IniName_Row + 1 Next cl End Sub 

如果你改变这一行:

 Set Table2 = Sheet1.Range("A2:D" & LastRow) 

至:

 Set Table2 = sourceSheet.Range("A2:D" & LastRow) 

你的代码将工作

您还应该将Option Explicit添加到每个模块的顶部以强制variables声明。 cl没有被宣布为Range