使用VBA在Excel工作表中插入公式的问题

瑞克

我最近在使用 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用VBA在Excel中删除工作表

使用VBA在Excel工作表中创建表

如何使用Excel VBA宏将变量值插入到getpivotdata公式中

如何使用Excel VBA在表中水平复制公式?

使用VBA将带表引用的公式插入到单元格中

使用VBA扩展基于另一个工作表中数据的公式

使用VBA在Excel中循环浏览工作表的精确列表

在Excel VBA中插入数组公式

工作表更改事件问题(Excel VBA)

使用VBA在公式中插入外部工作簿引用(由用户选择)

使用Excel VBA在不同工作簿中的索引/匹配公式中引用文件路径变量

在Excel中使用VBA插入公式时出现“ @”

在表Excel VBA中插入新列

Excel公式中的动态工作表参考

如何使用phpexcel在Excel工作表中插入公式

自动在Excel工作表中插入图像

Excel VBA:如果列中的值匹配,则将值从工作表1插入到工作表2

使用循环将公式插入每个工作表的同一单元格中

使用VBA插入数据透视表可在Excel 2013中工作,但不能在Excel 2010中工作,无需更改代码

Excel VBA中的公式问题

Excel VBA如何使用工作表上的公式编辑每个单元格

使用 VBA 替换列中所有单元格的公式中的工作表名称

excel vba 函数返回数组并粘贴到工作表公式中

通过 VBA 插入 Excel 公式

将工作表数据插入到用户表单组合框中,没有重复 - Excel Vba

使用 ADODB 在 Excel 工作簿中插入特定表

使用 VBA 从 Excel 中的其他工作表获取值

VBA中的公式问题

VBA 宏 - 使用一个工作表中的数据自动填充多个工作表的公式