vlookup错误处理,错误2042

时间:2017-01-03 17:58:48

标签: vba excel-vba error-handling vlookup excel

我正在尝试让Vlookup在VBA中工作,我有这段代码:

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

出于某种原因,每个细胞都是空白的。如果我在匹配的单元格中手动键入公式,它可以正常工作。我猜这可能与错误处理有关,也许?目标是在模板,A列中查找EDM列B中的值并返回EDM列G.

1 个答案:

答案 0 :(得分:1)

您是对的,它与您的错误处理有关,您需要使用If IsError(Application.VLookup...)稍微改变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 的代码中与EDM专栏B"进行比较,以便选择哪一个? ?

尝试以下代码:

CALL apoc.cypher.run("RETURN 2 AS x UNION RETURN 1 AS x", NULL) YIELD value
RETURN value.x AS x
ORDER BY x;