如果cell = #N / A,请使用另一个vlookup

时间:2015-05-29 14:00:38

标签: excel vba if-statement vlookup

我有这个Excel VBA宏运行得很好

    Sub PCMSLookupTool()
    Dim LastRow As Long
    With Sheets("Lookup Tools")   '<-set this worksheet reference properly
        LastRow = .Range("A" & Cells.Rows.Count).End(xlUp).Row
        With .Range("J10:J" & LastRow)
          .Formula = "=VLOOKUP(A10, 'PCMS-dump'!A:B, 2, FALSE)"
          .Cells = .Value2
        End With
    End With
End Sub

但是如果它没有找到值(返回#N / A)来运行另一个vlookup(“= VLOOKUP(A10,'在PCMS中导入'!A:C,3,FALSE)”,我需要这样做。

我将如何做到这一点?

2 个答案:

答案 0 :(得分:3)

您需要的是IFERROR声明:

{{1}}

答案 1 :(得分:1)

计算完公式后,需要运行以下内容:

=if(isna(Sheets("Lookup Tools").Range(J10:J" & LastRow).Value),vlookup(A10,'Imported in PCMS'A:C,3,false),Sheets("Lookup Tools").Range(J10:J" & LastRow).Value)

我总是喜欢使用另一个单元格,否则你最终会运行第一次vlookup两次... 即:

=if(isna(vlookup1(...)), vlookup2(...),vlookup1(...))

这不是非常有效;)