将公式放入单元格时出现运行时错误 1004

Posted

技术标签:

【中文标题】将公式放入单元格时出现运行时错误 1004【英文标题】:Runtime error 1004 when putting formula into cell 【发布时间】:2016-05-18 13:37:12 【问题描述】:

我刚刚更改了将公式放入单元格的代码,现在它显示运行时错误 1004(应用程序定义或对象定义错误)。 我的新代码是:

ActiveCell.FormulaR1C1 = _
    "=IF(IsError(VLOOKUP(RC[3],TransactionTypes!C:C[1],2,0)),""MISC"",IF(ISNUMBER(SEARCH(""AX"",(RC[2],2))),""Amex"",VLOOKUP(RC[3],TransactionTypes!C:C[1],2,0)))"

之前运行良好的代码是:

'ActiveCell.FormulaR1C1 = _
    "=IF(IsError(VLOOKUP(RC[3],TransactionTypes!C:C[1],2,0)),""MISC"",IF(LEFT(RC[2],2)=""AX"",""Amex"",VLOOKUP(RC[3],TransactionTypes!C:C[1],2,0)))"

我更改的部分是 IF(LEFT(RC[2],2)=""AX"",""Amex"" 变成 IF(ISNUMBER(SEARCH(""AX"",(RC[2], 2))),""Amex"" 但我不明白为什么会抛出错误。

【问题讨论】:

如果您遇到此类问题,您应该手动将公式粘贴到单元格中,看看它是否正确。这是找出其中错误的最简单方法。 【参考方案1】:

您似乎在 LEFT 语句的一部分中离开了。你需要:

ActiveCell.formular1c1 = _
    "=IF(IsError(VLOOKUP(RC[3],TransactionTypes!C:C[1],2,0)),""MISC"",IF(ISNUMBER(SEARCH(""AX"",RC[2])),""Amex"",VLOOKUP(RC[3],TransactionTypes!C:C[1],2,0)))"

【讨论】:

以上是关于将公式放入单元格时出现运行时错误 1004的主要内容,如果未能解决你的问题,请参考以下文章

使用 Range 类在 VBA 中创建宏时出现运行时错误 1004

运行时错误“1004”未找到单元格错误

使用 VBA 密码保护进行保存时出现错误消息“运行时错误‘1004’:对象‘_Workbook’的方法‘SaveAs’失败”

从 VBA 插入公式时出现不同的语言问题

是否有 Google 表格公式可以将表格名称放入单元格中?

当单元格被公式更改时,VBA 代码不运行