我想使用 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)))"
但是您也不需要
IF
和 ISERROR
.您可以使用 IFERROR
:"=IFERROR(VLOOKUP($F4,'" & var_SN & "'!$B:$BD,'" & var_SN & "'!AS$50,0),"""")"
IFERROR
除非有错误,否则将执行第一个参数,然后执行第二个参数。
关于excel - Vlookup 的运行时错误 1004,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33788941/