【问题标题】:EXCEL VBA run formula via MACROEXCEL VBA 通过 MACRO 运行公式
【发布时间】:2020-02-12 13:25:36
【问题描述】:

我之前已经问过这样的问题,但我对 VBA 公式真的很不好。

这是我的公式:

Worksheets("Sheet1").Range(CellRange).formula = "=IF(Sheet2!E$4=X;CONCATENATE(Sheet3! """ & myString """, Not defined)"

运行时错误 1004:由应用程序或对象定义的错误

myString 是一个 STRING,包含一个单元格的地址。

我之前的问题A question with a really good answer中的解释我已经习惯了

但这一次没有成功。有什么建议吗?

谢谢!

【问题讨论】:

  • ; 更改为,。然后检查你的括号....总是有助于Debug.Print 在尝试将公式写入单元格之前,您期望公式是什么。
  • 我应该如何检查带有Debug.Print 的公式?在调试之前我应该​​把它放在一个字符串中吗?
  • Debug.Print "=IF(Sheet2!E$4=X;CONCATENATE(Sheet3! """ & myString """, Not defined)" 然后检查即时窗口。右边是一个字符串。
  • 也许" 类似于"=IF(Sheet2!E$4=X;CONCATENATE(Sheet3!" & myString & ", ""Not defined"")",您的if 也没有虚假部分。
  • 多亏了Debug.Print,我明白了我存在的意义以及如何正确编写公式。 @BigBen 你的大师!

标签: excel vba formula


【解决方案1】:
Worksheets("Sheet1").Range(cellrange).Formula = _
  "=IF(Sheet2!E$4=""X"",Sheet3!" & myString & ", ""Not defined"")"

【讨论】:

  • @Plutian 嗨。我认为这个答案是问题中代码行的更正版本。我可以写一个详细的解释,但我的英语不好。此文本是使用 Google 翻译创建的 translate.google.com
  • 没问题,这更像是一个建议。这对提问者来说比对我更重要。我将删除我的评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-29
相关资源
最近更新 更多