Написать формулу в ячейке Excel, используя VBA - PullRequest
20 голосов
/ 04 декабря 2008

Я пытаюсь использовать 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 ]

20 голосов
/ 09 декабря 2008

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

5 голосов
/ 09 июля 2013

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

5 голосов
/ 09 декабря 2008

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

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

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

5 голосов
/ 04 декабря 2008

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

0 голосов
/ 04 декабря 2008

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...