【问题标题】:problems with VBA code application or object errorVBA 代码应用程序或对象错误的问题
【发布时间】:2010-08-10 08:58:31
【问题描述】:

我在 VBA 中编写了一些代码,我的代码在此行中断,引发应用程序定义或对象定义错误。

.Formula = "=IF(AND(chr(34) & ' & chr(34) & Criterion " & i & "'!" & cellAdress & ">=1;chr(34) & ' & chr(34) & Criterion " & i & "'!" & cellAdress & "<=4);chr(34) & ' & chr(34) & Criterion " & i & "'!" & cellAdress & ";0)"

我真的试图检查出了什么问题,但我看起来也很好。请让我知道可能出了什么问题以及如何解决。

谢谢

【问题讨论】:

  • 在此期间,也许您可​​以去检查一下您是否可以接受之前问题的一些答案? :)

标签: vba object defined


【解决方案1】:

我想你想要

.Formula = "=IF(AND('Criterion " & i & "'!" & cellAdress & ">=1;'Criterion " & i & "'!" & cellAdress & "<=4);'Criterion " & i & "'!" & cellAdress & ";0)"

至少这会产生一个有效且合理的单元格公式,而您的则不会。

cellAdress 设置为"A1" 并将i 设置为10,结果将是:

"=IF(AND('Criterion 10'!A1>=1;'Criterion 10'!A1<=4);'Criterion 10'!A1;0)"

【讨论】:

  • 我首先尝试了这个,但是它产生了同样的错误有人建议我添加引号: =IF(and("'Criterion " & i & "'!" & cellAdress & ">= 1;"'Criterion " & i & "'!" & cellAdress & "
  • @niuchu:我刚刚测试过的我的 VBA 编辑器接受它作为合法代码,它会生成我在答案中显示的字符串。 Excel 接受该字符串作为完全有效的单元格公式。你做错了什么。提示:也许你应该检查一下 cellAdressi 在你的情况下包含什么。
【解决方案2】:

好的,我现在明白了。在我运行之前,我的 VBA 也不会引发任何错误。也许我在看这段代码太久而发疯了。我的单元格地址包含 D18,我包含 1。我确实有一个名为 Criterion 1 的工作表,并且此工作表中的单元格的值为 2(我也尝试过当它为空时)。仍然会引发此错误,我不知道是什么原因造成的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多