【问题标题】:Excel VBA: Application-defined or object-defined error when setting a cell formulaExcel VBA:设置单元格公式时应用程序定义或对象定义的错误
【发布时间】:2014-02-13 04:42:13
【问题描述】:

我是新来的。

我正在尝试将单元格的公式设置为给定字符串,如下所示,但出现运行时错误“1004”:应用程序定义或对象定义错误。该单元格位于活动工作表上,我可以在即时窗口中将公式设置为空白,但我无法将其设置为下面的公式而不遇到错误。

Cells(47, i).Formula = "=('sheetName'!$C$105-SUM(OFFSET($C$47,0,0,1," + _
    CStr(i - 3) + ")))/(COLUMN($N$47)-COLUMN(" + _
    CStr(i - 1) + "$47))"

我想知道字符串是否有一些特殊字符限制?

【问题讨论】:

  • 这部分有问题:COLUMN(" + CStr(i - 1) + "$47))" 因为我看到CStr(i - 1) 将返回数字
  • 没关系!新手错误。我有第二次使用 CStr 上面发送一个数字作为单元格引用。我将它设置为 Col_Letter(CLng(i - 1)) ,它工作得很好。 Col_Letter 是一个函数,它返回给定列号的字母值。
  • 谢谢 simoco,你说的很对。

标签: vba excel


【解决方案1】:

您因此遇到错误

COLUMN(" + CStr(i - 1) + "$47))"

单元格地址必须类似于A1,即Letter,然后是Number

【讨论】:

  • 刚刚添加了相同的评论:)
  • 哦,对不起。我可以删除我的答案。如果你愿意,你可以把它作为答案。
  • 感谢 Siddharth,感谢 simoco,这正是问题所在。我使用 Col_Letter(CLng(i - 1)) 修复了它,它返回与给定长值对应的列字母。
猜你喜欢
  • 2015-03-10
  • 1970-01-01
  • 1970-01-01
  • 2018-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多