簡體   English   中英

vlookup錯誤處理,錯誤2042

[英]vlookup error handling, error 2042

我正在嘗試在VBA中使用Vlookup ,並且我有以下代碼:

Dim Result As Variant

    For i = 2 To lastrow
        Result = Application.VLookup(Template.Range("A" & i).Value2, EDM.Range("B:BP"), 5, False)
        If IsError(Result) Then
            Template.Range("E" & i).Value2 = ""
        Else
            Template.Range("E" & i).Value2 = Result
        End If
    Next i

由於某種原因,每個單元格都變成空白。 如果我在具有匹配項的單元格中手動鍵入公式,則效果很好。 我猜想它與錯誤處理有關,也許嗎? 目的是對照EDM列B在Template的A列中查找值,並返回EDM列G。

你是對的,它關系到你的錯誤處理,你需要捕獲VLookup錯誤有點不同,通過使用If IsError(Application.VLookup...)

注意 :在您的文章中,您正在編寫“ EDM列B”對比;在代碼中,您編寫了EDM.Range("B:BP") ,那是哪一個?

試試下面的代碼:

Dim Result As Variant

For i = 2 To lastrow
    If IsError(Application.VLookup(Template.Range("A" & i).Value2, EDM.Range("B:BP"), 6, False)) Then
        Template.Range("E" & i).Value2 = ""
    Else
        Result = Application.VLookup(Template.Range("A" & i).Value2, EDM.Range("B:BP"), 6, False)
        Template.Range("E" & i).Value2 = Result
    End If
Next i

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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