我正在尝试在excel VBA中创建等效的= IFERROR(VLOOKUP(), - 1)公式,其中函数将在我的数据表中查找文本,如果文本在表中,则返回第5列中的数字如果不是,则为-1 . 我已经在excel中测试了上面的公式,它给了我想要的结果问题是当我在VBA中编码时我一直得到#VALUE!如果文本不在表中,则会出错 . 如果文本在表中,代码将生成所需的数字 . 我的代码如下:
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中实现相同结果的最佳替代方案?
1 回答
如果找不到值,则使用
Application.WorksheetFunction.VLookup(
将中断代码 .将其包装在vba错误控制中 .
另一种方法是通过删除
.WorksheetFormula
来后期绑定,然后测试结果 .