我正在尝试使用VBA将公式写入Excel中的单元格。
我的问题是,当我在公式中使用分号(;
)时,出现错误:
Run-time error 1004
我的宏如下:
Sub Jours_ouvres()
Dim Feuille_Document As String
Feuille_Document = "DOCUMENT"
Application.Worksheets(Feuille_Document).Range("F2").Formula = "=SUM(D2;E2)"
End Sub
答案 0 :(得分:20)
您可以尝试使用FormulaLocal属性而不是Formula。然后分号应该有效。
答案 1 :(得分:5)
在这种情况下使用的正确字符是完整冒号(:
),而不是分号(;
)。
答案 2 :(得分:5)
正确的字符(逗号或冒号)取决于目的。
逗号(,
)只会对相关的两个单元格求和。
冒号(:
)会将范围内的所有单元格与这两个单元格定义的角点相加。
答案 3 :(得分:5)
Treb,Matthieu的问题是由于使用非英语语言的Excel引起的。在许多语言版本中“;”是正确的分隔符。甚至函数都被翻译(SUM可以是SOMMA,SUMME或其他任何取决于你使用的语言)。 Excel通常会理解这些差异,如果法语创建的工作簿由巴西人打开,他们通常不会有任何问题。 但是 VBA 只会说美国英语,所以对于我们这些在一个(或多个)外国语言工作的人来说,这可能会令人头疼。 你和CharlesB都给出了一个美国用户可以接受的答案,但是Mikko低估了真正的问题并给出了正确的答案(这对我来说也是正确的答案 - 我是一个英国人在意大利工作,讲德语公司)。
答案 4 :(得分:-1)
我不知道为什么,但如果你使用
(...)Formula = "=SUM(D2,E2)"
(' , '代替' ; '),它有效。
如果您在VB脚本编辑器(F8)中单步执行sub,则可以将Range("F2").Formula
添加到监视窗口,并从VB的角度查看公式的外观。似乎Excel中显示的公式有时与VB看到的公式不同......