将公式放入单元格时出现运行时错误 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
使用 VBA 密码保护进行保存时出现错误消息“运行时错误‘1004’:对象‘_Workbook’的方法‘SaveAs’失败”