excel - Vlookup 的运行时错误 1004

标签 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、Application-defined 或 Object Define 错误错误,所以我想知道变量是否有问题。我读到了关于 ' 和 ! 的双引号。但这无济于事。

我还想知道查找值 $F2 是否会成为我的问题,因为每次运行宏时行引用都会发生变化。例如,如果我在第 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)))"

但是您也不需要IFISERROR .您可以使用 IFERROR :
"=IFERROR(VLOOKUP($F4,'" & var_SN & "'!$B:$BD,'" & var_SN & "'!AS$50,0),"""")"
IFERROR除非有错误,否则将执行第一个参数,然后执行第二个参数。

关于excel - Vlookup 的运行时错误 1004,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33788941/

相关文章:

ajax - 使用 XMLHttpRequest 的 VBA 代码总是返回 #VALUE!在 Excel 中

java - 通过 Excel 打开带有 UTF-8 BOM 的 CSV

excel - 在 Excel 中以编程方式访问 SmartArt 上的 "Right to Left"

excel - 使用 VBA 在 Excel 2010 中查找和替换 Powerpoint 2010 中的文本

ms-access - 可以使用 VBA 更改的 Access 启动属性是什么

excel - 索引/匹配公式中的动态工作表名称

excel - 使用适用于 Excel/Power BI 的 Azure AD SSO 设置 Snowflake ODBC

excel - API网关可以在url而不是 header 中传递API key 吗?

excel - VBA从特定工作表中的多个不同工作簿复制数据,然后将数据粘贴到当前工作簿中的特定工作表

vba - 使用公式从字符串中提取两个数字