Добавить формулу ячейки в Excel через vba

Я не эксперт по Excel или VBA, но я хочу вставить эту текущую формулу Excel в ячейку с помощью VBA.

Текущая формула Excel:

=IF(OR(ISNUM(D570)=FALSE;ISNUM(D573)=FALSE);"";IF(C573="Total";D573-D570;""))

Формула VBA:

 ActiveSheet.Range("a" & ActiveSheet.Rows.Count).End(xlUp).Offset(2, 12).Value = "=IF(OR(ISNUM(R[-3]C[-9])=FALSE;ISNUM(R[0]C[-9])=FALSE);'';IF(R[0]C[-10]='Total';R[0]C[-9]-R[-3]C[-9];''))"

Это не работает... Кто-нибудь может мне помочь?


person Community    schedule 08.01.2010    source источник


Ответы (2)


Попробуйте использовать .formula = вместо .value = в коде VBA.

Установка .value ячейки просто копирует любое указанное вами значение. В этом случае ваша формула просто преобразуется в строковое значение.

Используя свойство .formula, вы фактически указываете формулу, которая используется для вычисления значения, которое вы ищете.

person e.James    schedule 08.01.2010

Могу ли я сначала предложить упрощение вашей формулы, начиная с:

=IF(OR(ISNUM(D570)=FALSE;ISNUM(D573)=FALSE);"";IF(C573="Total";D573-D570;""))

...to...

=IF(AND(C573="Total"; ISNUM(D570); ISNUM(D573)); D573-D570; "")

Затем я бы установил ячейку (активную ячейку в приведенном ниже примере), чтобы использовать эту формулу, используя код VBA:

ActiveCell.Formula = "=IF(...)"
person Gary McGill    schedule 08.01.2010
comment
Также поменяйте точки с запятой на запятые. - person Codezy; 08.01.2010