1

我无法弄清楚这一点。

我们主要使用法语版本的 Excel(因为我们住在加拿大的法语省)。在 VBA 代码的某处,我直接设置了单元格的公式。通常,我们必须用英语编写公式,而 Excel 会进行翻译(据我所知,在 VBA 中用英语以外的任何其他语言编写公式都会导致错误)。然而,这个方程只有一半被翻译,我认为这导致了我的问题(在另一个单元格中编写正确的公式会产生不同的结果,而且很可能是正确的结果)。

range("J2").Formula = "=round(IF(F2="",0,F2),2)-round(IF(G2="",0,G2),2)"

在单元格中被翻译成这个:

=ARRONDI(SI(F2=",0,F2),2)-round(IF(G2=",0,G2),2)

如您所见,右侧部分应为“ARRONDI(SI(..”),但不是这样读的。我尝试添加空格,完全删除减号等。没有任何效果,它总是翻译一半。任何想法?

4

1 回答 1

3

在 VBA 中,你需要像这样逃避你的报价:

range("J2").Formula = "=round(IF(F2="""",0,F2),2)-round(IF(G2="""",0,G2),2)"

这是因为"字符在 VBA 中用作字符串的开始/结束。因此,如果您不想将其包含字符串中,则需要连续输入两次。

于 2012-08-10T14:59:54.717 回答