VBA Excel - IFERROR & VLOOKUP error
我正在尝试在excel VBA中创建等效于= IFERROR(VLOOKUP(),-1)公式的公式,该函数将在我的数据表中查找文本,如果文本在表中,则返回第5列中的数字 如果不是,则为-1。 我已经在excel中测试了上面的公式,它给了我想要的结果,问题是当我在VBA中对其进行编码时,我不断得到#VALUE! 如果文本不在表中,则错误。 如果文本在表中,则代码将生成所需的数字。 我的代码如下:
1 2 3 4 5 | Function CCC(A As Variant) Dim B As Variant B = Application.WorksheetFunction.IfError(Application.WorksheetFunction.VLookup(A, Sheets("DAP").Range("$B$4:$X$7"), 5, False), -1) CCC = B End Function |
考虑到这一点,是否有一种方法可以修复代码,以使IFERROR(VLOOKUP)起作用,如果不能,那么在VBA中实现相同结果的最佳选择是什么?
如果找不到该值,使用
将其包装在vba错误控制中。
1 2 3 4 5 6 7 8 9 | Function CCC(A As Range) Dim B As Variant B = -1 On Error Resume Next B = Application.WorksheetFunction.VLookup(A.Value, Sheets("DAP").Range("$B$4:$X$7"), 5, False) On error goto 0 CCC = B End Function |
另一种方法是通过删除
1 2 3 4 5 6 7 8 9 | Function CCC(A As Range) Dim B As Variant B = Application.VLookup(A.Value, Sheets("DAP").Range("$B$4:$X$7"), 5, False) If IsError(B) Then CCC = -1 Else CCC = B End If End Function |