Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel不会自动计算通过VBA插入的公式_Vba_Excel - Fatal编程技术网

Excel不会自动计算通过VBA插入的公式

Excel不会自动计算通过VBA插入的公式,vba,excel,Vba,Excel,我正在通过vba和.FormulaR1C1创建一个公式,但Excel似乎没有意识到这是一个公式。它在公式栏中显示正确的公式,在单元格中显示引用错误 我试了一份带有简单公式的测试表 .Cells(i, recalcCol).FormulaR1C1 = "=RC(-1)" 单元格格式设置为“常规”。在之前或之后的任何位置插入.NumberFormat=“general”,都不会改变行为。它绝对不是文本单元格 我可以双击或F2输入单元格,然后点击enter,Excel将删除错误并显示正确的结

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

我试了一份带有简单公式的测试表

    .Cells(i, recalcCol).FormulaR1C1 = "=RC(-1)"
单元格格式设置为“常规”。在之前或之后的任何位置插入
.NumberFormat=“general”
,都不会改变行为。它绝对不是文本单元格

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

我也试着重新计算工作表,但也没有改变

有什么提示吗


Thx Kaz

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

但是,要查看RC格式的公式,请执行以下操作:

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

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


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


“=RC[-1]”
方括号。。。那么简单。。。这就是将德语公式翻译成英语公式的过程。太多了!你想要正确的答案吗?谢谢你添加了公式本地部分。我总是忽略这一点,因为我自己只是提出了正确的公式。但是我从来没有想过用它来翻译。
Option Explicit

Public Sub TestMe()

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

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