【问题标题】:Excel does not calculate formula automatically, that is inserted via VBAExcel 不会自动计算公式,即通过 VBA 插入
【发布时间】:2017-07-17 09:37:29
【问题描述】:

我正在通过 vba 和 .FormulaR1C1 创建一个公式,但 Excel 似乎没有意识到它是一个公式。它在公式栏中显示正确的公式,并在单元格本身中显示参考错误。

我尝试了一个简单公式的测试表

    .Cells(i, recalcCol).FormulaR1C1 = "=RC(-1)"

单元格格式设置为一般。在之前或之后的任何时间插入.NumberFormat = "general" 都不会改变行为。它绝对不是文本单元格。

我可以双击或F2输入单元格,然后点击Enter,Excel会删除错误并显示正确的结果。但是对所有更改的单元格都这样做是不可能的。

我也尝试重新计算工作表,但那里也没有任何变化。

有什么提示吗?

谢谢卡兹

【问题讨论】:

  • "=RC[-1]" 方括号
  • 该死的......那么简单......这就是从德语到英语公式翻译时发生的事情。多谢!你要正确答案投票吗?

标签: vba excel


【解决方案1】:

如 cmets 中所述,=RC[-1] 是正确的公式。

但是,为了自己查看 RC 格式的公式,请执行以下操作:

  • 用公式选择单元格
  • 运行下面的代码
  • 检查即时窗口

Option Explicit

Public Sub TestMe()

    Debug.Print Selection.FormulaR1C1
    Debug.Print Selection.Formula
    Debug.Print Selection.FormulaLocal

End Sub

关于德语到英语,当您使用.FormulaR1C1.Formula 时,您不必担心,Excel 会处理它。只有当您将公式作为字符串传递给.FormulaLocal 时,您才应该担心。


这是上面Sub 的即时窗口中的结果,使用简单的 SUM() 公式:

=RC[-1]+SUM(5,5)
=M10+SUM(5,5)
=M10+SUMME(5;5)

【讨论】:

  • 感谢您添加 FormulaLocal 部分。我一直忽略这一点,因为我自己只是输入了正确的公式。但是从来没有想过用它来获取翻译。
猜你喜欢
  • 1970-01-01
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多