如果 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(...))
效率不是很高 ;)
我有这个 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(...))
效率不是很高 ;)