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

时间:2008-12-04 16:43:51

标签: excel vba excel-vba

我正在尝试使用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

5 个答案:

答案 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看到的公式不同......