运行时错误1004与Vlookup
我想用VBA在Excel中创build下面的公式:
=IF(ISERROR(VLOOKUP($F4,'17402'!$B:$BD,'17402'!AS$50,0))=TRUE,"",(VLOOKUP($F4,'17402'!$B:$BD,'17402'!AS$50,0)))
这是我的代码:
Dim wsFormula As String wsFormula = "=IF(ISERROR(VLOOKUP($F4," & "" '"" var_SN & ""'!"" & "$B:$BD," & ""'"" & var_SN & ""'!"" & "AS$50,0))=TRUE,0,(VLOOKUP($F4," & ""'"" var_SN & ""'!"" & "$B:$BD," & ""'"" var_SN & ""'!"" & "AS$50,0)))" ActiveCell.Formula = wsFormula
其中“var_SN”是“17402”。 我收到一个运行时错误1004,应用程序定义或对象定义错误错误,所以我不知道这个variables是否是问题。 我读了关于'和! 但是这并没有帮助。
我也想知道$ F2的查找值是否会成为一个问题,因为每次运行macros时行参考都会改变。 例如,如果我在第4行,我不希望这个代码编写一个将引用单元格F1作为查找值的公式。 非常感谢。
你有太多的“
每个你有17402
地方都改成" & var_SN & "
。
而""
需要成为""""
"=IF(ISERROR(VLOOKUP($F4,'" & var_SN & "'!$B:$BD,'" & var_SN & "'!AS$50,0))=TRUE,"""",(VLOOKUP($F4,'" & var_SN & "'!$B:$BD,'" & var_SN & "'!AS$50,0)))"
但是你也不需要IF
和ISERROR
。 你可以使用IFERROR
:
"=IFERROR(VLOOKUP($F4,'" & var_SN & "'!$B:$BD,'" & var_SN & "'!AS$50,0),"""")"
除非出现错误,否则IFERROR
将执行第一个参数,然后执行第二个参数。