Подтвердить что ты не робот

Напишите формулу в ячейке Excel с помощью VBA

Я пытаюсь использовать VBA для записи формулы в ячейку в Excel. Моя проблема в том, что когда я использую точку с запятой (;) в моей формуле, я получаю сообщение об ошибке:

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
4b9b3361

Ответ 1

Вы можете попробовать использовать свойство FormulaLocal вместо формулы. Тогда точка с запятой должна работать.

Ответ 2

В этом случае правильным символом является полный двоеточие (:), а не точка с запятой (;).

Ответ 3

Правильный символ (запятая или двоеточие) зависит от цели.

Запятая (,) будет суммировать только две ячейки, о которых идет речь.

Colon (:) суммирует все ячейки в пределах диапазона с углами, определяемыми этими двумя ячейками.

Ответ 4

Treb, проблема Matthieu была вызвана использованием Excel на неанглийском языке. Во многих языковых версиях ";" является правильным разделителем. Выполняются даже функции (SUM может быть SOMMA, SUMME или любой другой, в зависимости от того, на каком языке вы работаете). Excel, как правило, понимает эти различия, и если созданная французами книга открывается бразильцем, у них обычно не будет никаких проблем. Но VBA говорит только на английском языке, поэтому для тех из нас, кто работает в одном (или более) иностранном языке, это может быть головной болью. Вы и CharlesB оба дали ответы, которые были бы в порядке для американского пользователя, но Микко поддался РЕАЛЬНОЙ проблеме и дал правильный ответ (что тоже было правильным для меня тоже - я британец, работающий в Италии для немецкоговорящего компания).

Ответ 5

Я не знаю почему, но если вы используете

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

(',' вместо ';'), он работает.

Если вы перейдете через свой суб в редакторе VB script (F8), вы можете добавить Range("F2").Formula в окно просмотра и посмотреть, как выглядит формальный вид с точки зрения VB. Кажется, что формула, показанная в самом Excel, иногда отличается от формы, которую видит VB...