单元格显示#NAME?在VBA输入公式

时间:2018-01-04 15:00:17

标签: excel vba excel-vba excel-formula

Cells(intRow, 2 + j).Formula = "=SUM(C" & intRow & ":" & colName & intRow & ")"

这是我用来将基本SUM功能放入某些行末尾的单元格中的代码。在单元格中输入此公式后,单元格显示“#NAME?”。如果我点击公式,然后按“Enter”,公式按预期工作(公式输入也正确)。

有没有办法让VBA自动更新这些单元格,因此该公式在VBA进入单元格后立即生效?

编辑:变量的示例值为:

intRow = 5
j = 7 (Column G)
colName = H (refers to j + 1)

因此,单元格K5中的完成公式为:

=SUM(C5:J5)

2 个答案:

答案 0 :(得分:0)

解决:使用

.FormulaR1C1

不会导致同样的错误。

  

单元格(intRow,2 + j).FormulaR1C1 =“= SUM(RC [”& - (j - 1)&“]:RC [”&   (-1)& “])”

答案 1 :(得分:0)

由于其他原因,我遇到了同样的问题,但我认为这可能有助于其他人:

  

这是由于本地化(语言)问题

我是法国用户,我正在尝试以下代码:

[host1] Executing task 'checkout' [localhost] local: touch test-file-all-servers [localhost] local: touch test-file-arg1 [host2] Executing task 'checkout' [localhost] local: touch test-file-all-servers [localhost] local: touch test-file-arg2

其中For Each cel In selectedRange.Cells cel.FormulaR1C1 = "=SI(R[0]C[-1]=1,1,0)" Next cel对应于英文中的公式SI

问题是IF只接受英语公式:所以要修复它我必须使用:

FormulaR1C1

否则我也可以使用我的法语公式,感谢For Each cel In selectedRange.Cells cel.FormulaR1C1 = "=IF(R[0]C[-1]=1,1,0)" Next cel,例如:

FormulaR1C1Local

(请注意,For Each cel In selectedRange.Cells cel.FormulaR1C1Local = "=SI(L(0)C(1)=1;1;0)" Next cel / L用于法语单词:C,我需要使用分隔符Ligne/Colonne,括号在Excel中用括号替换法国世界..)