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