Программная вставка формулы в ячейку Excel - VB

Узнай цену своей работы

Формулировка задачи:

В общем цель такая. Часто приходиться писать формулы в Excel, которые в текущий момент выдают ошибку #Знач, #Дел0 (т.к. используются данные, которых еще нет).
Поэтому пишется такая формула =Если(еошибка(С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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5