Vlookup

时间:2015-11-18 19:42:42

标签: excel vba

我想使用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作为查找值的公式。非常感谢。

1 个答案:

答案 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)))"

但您也不需要IFISERROR。您可以使用IFERROR

"=IFERROR(VLOOKUP($F4,'" & var_SN & "'!$B:$BD,'" & var_SN & "'!AS$50,0),"""")"

IFERROR将执行第一个参数,除非出现错误,然后执行第二个参数。