公式适用于手动输入,但不适用于VBA

鲍勃

我有一个数据集,如下所示:

A   B   C
1   10  145
1.1 11  0
1.2 12  0
1.3 13  0
2   14  145
2.1 15  0
2.2 16  0
3   17  145
3.1 18  0
3.2 19  0

表格中的A列和B列是我的输入数据,C列使用以下公式创建:

=IF(MOD([@A],1)=0,SUM([B]),0)

这是一个简化的示例,而不是我正在使用的实际公式,但是作为最小的可重复示例就足够了。

当我在编辑栏中手动输入此公式时,它的工作原理与预期完全一样,并在上表中产生了这些值。但是,当我尝试使用VBA将此公式输入到单元格中时,它将失败。它给我一个错误:

错误:名称无效

如果然后我单击该单元格并进入编辑栏,就好像我想手动操作公式,然后立即按Enter键,而无需实际更改公式中的任何内容,错误就消失了,结果将像以前一样正确地再次显示。

我用于通过VBA将公式输入到单元格中的代码如下:

Sub InputFormula()
    Set srcTable = ActiveSheet.ListObjects(1)
    fmtString = "=IF(MOD([@A],1)=0,SUM([B]),0)"
    Range(srcTable.Name & "[C]").Formula = fmtString
End Sub

当通过VBA应用时,为什么明显正确的公式被破坏了?如何通过VBA应用来更正它呢?

我在Windows 10 x64上使用Excel 2019。

鲍勃

我想出了解决问题的方法:

我正在使用非英语版本的Excel。当我尝试在VBA中使用本地化的函数名称时,出现了问题中所述的错误。当我使用相应的英文名称时,一切都会按预期进行。

这是违反直觉的,因为当我通过VBA应用条件格式时,我必须使用本地化的函数名。使用英语那里是行不通的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章