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)
答案 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中用括号替换法国世界..)