Excel VBA错误1004 - 在我的公式中使用双引号的应用程序定义或对象定义的错误

时间:2013-11-02 08:59:40

标签: excel vba ms-office

我正在尝试使用VBA向Excel中的单元格添加公式,(简化)代码为

    Dim destRow as integer
    destRow = 107
    Cells(destRow, 19) = "=IF(L" & destRow & "="""";"""";""UNB"")"

`我也尝试了以下(代替最后一行):

    Cells(destRow, 19) = "=IF(L" & destRow & "=" & chr(34) & chr(34) & ";" & chr(34) & chr(34) & ";" & chr(34) & "UNB" & chr(34) & ")"

在即时窗口中,两者都产生正确的输出:

    =IF(L107="";"";"UNB")

...但是,当我运行代码时,我在最后一行收到错误1004“应用程序定义的或对象定义的错误”。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

你应该替换分号“;”在逗号“,”中的IF公式中。在解释公式时,它们将以分号显示,具体取决于您的Excel配置。

答案 1 :(得分:0)

我想你可能只需要参考相关的工作表。

如果代码位于工作表的代码中而不是模块中,则代码将起作用。

所以

Sheet1.Cells(destRow, 19) = "=IF(L" & destRow & "=" & chr(34) & chr(34) & ";" & chr(34) & chr(34) & ";" & chr(34) & "UNB" & chr(34) & ")"

如果不是Sheet1

,显然可以替换所需的纸张