Программная вставка формулы в ячейку Excel - VB
Формулировка задачи:
В общем цель такая. Часто приходиться писать формулы в Excel, которые в текущий момент выдают ошибку #Знач, #Дел0 (т.к. используются данные, которых еще нет).
Поэтому пишется такая формула =Если(еошибка(С5/С6);"";С5/С6), т.е. в случае ошибки ничего не выдаст, а если все в порядке - то посчитает.
Суть в том, что каждый раз писать такую длинную формулы лень, а есть формула, которая считает, т.е. С5/С6.
Хочется иметь макрос, который посмотрит в ячейку, возьмет тамошнюю формулу, всунет ее в формулу с ЕСЛИ и вставит уже полную формулу (с Если) в эту ячейку.
Теперь проблема:
Пишу следующий макрос
Вылетает на строчке выделенной красным цветом.
Причем если формулу указать явным образом и выкинуть всякие ЕСЛИ, то работает. ПРобовал менять Если на IF, тоже не работает. Выдает ошибку
В чем дело?
Поэтому пишется такая формула =Если(еошибка(С5/С6);"";С5/С6), т.е. в случае ошибки ничего не выдаст, а если все в порядке - то посчитает.
Суть в том, что каждый раз писать такую длинную формулы лень, а есть формула, которая считает, т.е. С5/С6.
Хочется иметь макрос, который посмотрит в ячейку, возьмет тамошнюю формулу, всунет ее в формулу с ЕСЛИ и вставит уже полную формулу (с Если) в эту ячейку.
Теперь проблема:
Пишу следующий макрос
Вылетает на строчке выделенной красным цветом.
Причем если формулу указать явным образом и выкинуть всякие ЕСЛИ, то работает. ПРобовал менять Если на IF, тоже не работает. Выдает ошибку
В чем дело?
Решение задачи: «Программная вставка формулы в ячейку Excel»
textual
Листинг программы
newcontrus = <b><font color="green">"=если(еошибка("</font></b> & cont & <b><font color="green">");"</font></b> & Chr(<b><font color="darkblue">34</font></b>) & Chr(<b><font color="darkblue">34</font></b>) & <b><font color="green">";"</font></b> & cont & <b><font color="green">")"</font></b> <br>newcont = <b><font color="green">"=<font color="blue">if</font>(iserror("</font></b> & cont & <b><font color="green">"),"</font></b> & Chr(<b><font color="darkblue">34</font></b>) & Chr(<b><font color="darkblue">34</font></b>) & <b><font color="green">","</font></b> & cont & <b><font color="green">")"</font></b> <br><font color="green">' удаляем старую формулу <br>ActiveCell.ClearContents <br> <br>'</font> вставляем новую формулу <br>ActiveCell.FormulaLocal = newcontrus <br>ActiveCell.Formula = newcont
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д