使用VBA在Excel单元格中编写公式

我正在尝试使用VBA将公式写入Excel中的单元格。 我的问题是,当我在公式中使用分号( ; )时,出现错误:

Error 1004

我的macros是以下内容:

 Sub Jours_ouvres() Dim Feuille_Document As String Feuille_Document = "DOCUMENT" Application.Worksheets(Feuille_Document).Range("F2").Formula = "=SUM(D2;E2)" End Sub 

您可以尝试使用FormulaLocal属性而不是公式。 然后分号应该工作。

在这种情况下使用正确的字符是完整的冒号(:),而不是分号( ; )。

正确的字符(逗号或冒号)取决于目的。

逗号( , )将只求和两个有问题的单元格。

冒号(:)会将这个范围内的所有单元格与这两个单元格所定义的angular点相加。

Treb,Matthieu的问题是由于在非英语语言中使用Excel造成的。 在许多语言版本“;” 是正确的分隔符。 即使函数被翻译(SUM可以是SOMMA,SUMME或任何取决于你工作的语言)。 Excel通常会理解这些差异,如果法国制作的工作簿是由巴西人开的,他们通常不会有任何问题。 但是VBA只会讲美国英语,所以对于我们这些使用一种(或更多)外国语言的人来说,这可能是一个头痛的问题。 你和CharlesB都给了美国用户的答案,但是Mikko没有解释真正的问题,并给出了正确的答案(这对我也是正确的 – 我是一个在意大利工作的德国人的英国人公司)。

我不知道为什么,但如果你使用

 (...)Formula = "=SUM(D2,E2)" 

(' '而不是' ; '),它的工作原理。

如果您在VB脚本编辑器(F8)中浏览您的子文件夹,您可以将Range("F2").Formula到监视窗口,并从VB的angular度查看该文件的外观。 看来Excel中显示的公式有时与VB看到的公式不同。