我想使用VBA在Excel中创建以下公式:
=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,应用程序定义或对象定义错误错误,所以我想知道变量是否是问题。我读到了关于'和'周围双重叠加引号的信息!但这没有用。
我也想知道查找值$ F2是否会成为我的问题,因为每次运行宏时行引用都会更改。例如,如果我在第4行,我不希望此代码编写将引用单元格F1作为查找值的公式。非常感谢。
答案 0 :(得分:1)
你有太多"
您将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
将执行第一个参数,除非出现错误,然后执行第二个参数。