我最近在使用 VBA 将公式插入 Excel 工作表时遇到了一个问题。在相关代码段下方;
Calculatie_cell.Offset(n, 5) = "=SOM(H" & (n + 3 - 1) & ":H" & (n + 3 - Onderdelen_aantal) & ")"
Calculatie_cell.Offset(n, 8) = "=SOM(K" & (n + 3 - 1) & ":K" & (n + 3 - Onderdelen_aantal) & ")"
对于触发的第一次迭代,预期输出是;
=SOM(H4:H7)
=SOM(K4:K7)
我收到的输出是;
=@SOM(H4:H7)
=@SOM(K4:K7)
这个输出产生一个#NAME? 错误。按 F2,在单元格上输入(如手动输入),会出现错误,指出旧版本的 Excel 不支持此公式,并可选择将其更正为预期输出。如果我接受它,它就可以工作。
我不知道为什么 Excel 认为它需要 @ 并且下面的代码没有从公式中过滤 @ (但它确实从带有 @ 的随机文本中过滤掉了它)
Calculatie_cell.Offset(n, 5) = Replace(Calculatie_cell.Offset(n, 5), "@", "")
Calculatie_cell.Offset(n, 8) = Replace(Calculatie_cell.Offset(n, 8), "@", "")
有没有人建议我如何摆脱@,或使公式起作用的另一种方法?提前致谢!
相关说明;我用荷兰语使用 Excel 2016,意思是“SOM”是拼写“SUM”的正确方法
首先,无论您的 Office 安装语言是什么,VBA 都会要求输入英文。
因此,取代SOM
通过SUM
在你的代码。
它应该出现SOM
在工作簿中,但不在代码中。
其次,使用oCell = "=SOME_FORMULA"
通常不会产生预期的结果。
相反,应该使用oCell.Formula2 = "=SOME_FORMULA"
.
这就是为什么 a@
出现在公式中。
有关信息,请参阅此文章。
最后,你的代码应该是
Calculatie_cell.Offset(n, 5).Formula2 = "=SUM(H" & (n + 3 - 1) & ":H" & (n + 3 - Onderdelen_aantal) & ")"
Calculatie_cell.Offset(n, 8).Formula2 = "=SUM(K" & (n + 3 - 1) & ":K" & (n + 3 - Onderdelen_aantal) & ")"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句