簡體   English   中英

Excel VBA Vlookup返回-錯誤2042

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM