我正在使用 excel 2007 并创建了一个包含三个 vlookup() 语句的 UDF。该函数应该返回所有三个 vlookup 语句的总和。在大多数情况下,只有两个 vlookup() 语句将返回有效值,第三个语句将导致 NA,因为查找值不包含在查找范围内。
我尝试使用以下方法捕获错误并返回零:
Application.WorksheetFunction.iferror(vlookup(...) ,0)
使用 If iserror(vlookup()) then ...
但我似乎无法采用任何一种方法来工作。如果我注释掉我知道正在创建错误的 vlookup,一切都会按预期工作。
有谁知道为什么 iserror(0 和 iserror() 似乎不起作用,或者可能是另一种可行的方法。
更新:
以下是三个vlookup函数:
product2 = Application.WorksheetFunction.IfError(Application.WorksheetFunction.VLookup(productA, lookuprng, offset, False), 0)
product3 = Application.WorksheetFunction.IfError(Application.WorksheetFunction.VLookup(productB, lookuprng, offset, False), 0)
product4 = Application.WorksheetFunction.IfError(Application.WorksheetFunction.VLookup(productC, lookuprng, offset, False), 0)