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

If cell = #N/A, use another 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

但我需要这样做,如果它没有找到值 (returns #N/A) 到 运行 另一个 vlookup ("=VLOOKUP(A10, 'Imported in PCMS'!A:C, 3, 假)"

我该怎么做?

您需要的是 IFERROR 语句:

.Formula = "=IFERROR(VLOOKUP(A10, 'PCMS-dump'!A:B, 2, FALSE),(VLOOKUP(A10, 'Imported in PCMS'!A:C, 3, FALSE)))"

计算该公式后,您需要运行这样的事情:

=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(...))

效率不是很高 ;)