[英]Excel VBA Vlookup returning - Error 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,以强制进行变量声明。 cl
尚未被声明为Range
!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.