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

时间:2018-11-12 16:18:40

标签: excel vba excel-vba

我有一个类似于以下内容的数据集:

a?

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

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

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

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

  

错误:名称无效

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

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

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

为什么通过VBA应用时显然正确的公式被破坏了,我该如何纠正它以使通过VBA的应用程序起作用?

我在Windows 10 x64上使用Excel 2019。

1 个答案:

答案 0 :(得分:0)

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

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

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