我有这个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)”,我需要这样做。
我将如何做到这一点?
答案 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(...))
这不是非常有效;)