2013-11-13 5 views
4

Когда я пытаюсь сделать динамическую формулу с VBA в excel, я получаю это сообщение об ошибке.Can't add = в формуле с VBA, Excel

Эта линия просто отлично:

ActiveCell.Value = "IF(SUM(" & Range("A1:A5").Address & ")*0,1>" & Range("B1").Address & ";" & Range("C1").Address & ";SUM(" & Range("A1:A5").Address & ")*0,1)*-1" 

Если я добавить = перед моим IF-заявление, как это, я получаю сообщение об ошибке.

ActiveCell.Value = "=IF(SUM(" & Range("A1:A5").Address & ")*0,1>" & Range("B1").Address & ";" & Range("C1").Address & ";SUM(" & Range("A1:A5").Address & ")*0,1)*-1" 

Если я просто добавлю знак = после тестирования первого кода. Он отлично работает в Excel. Что я здесь делаю неправильно?

Не против диапазонов и прочее. Они являются только заполнителями, чтобы сделать пример похожим на мой код, насколько это возможно.

ответ

10

Чтобы ввести формулу в ячейку, вы должны использовать свойство .Formula вместо .Value.

Попробуйте

ActiveCell.Formula = "=IF(SUM(" & Range("A1:A5").Address & ")*0,1>" & Range("B1").Address & ";" & Range("C1").Address & ";SUM(" & Range("A1:A5").Address & ")*0,1)*-1"

+0

Да, я попытался это. Такая же ошибка. – Sukakka

+2

Я вижу, что вы используете ',' как десятичный разделитель и ';' вместо ','. Что произойдет, если вы 'ActiveCell.FormulaLocal' вместо' ActiveCell.Formula' –

+0

Спасибо. Теперь мне просто нужно выяснить, как добавить формулу суммы без написания «SUM (« и так далее »). – Sukakka

Смежные вопросы