Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Программная вставка формулы в ячейку Excel / 2 сообщений из 2, страница 1 из 1
03.02.2004, 10:28
    #32396197
novss
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная вставка формулы в ячейку Excel
В общем цель такая. Часто приходиться писать формулы в Excel, которые в текущий момент выдают ошибку #Знач, #Дел0 (т.к. используются данные, которых еще нет).
Поэтому пишется такая формула =Если(еошибка(С5/С6);"";С5/С6), т.е. в случае ошибки ничего не выдаст, а если все в порядке - то посчитает.

Суть в том, что каждый раз писать такую длинную формулы лень, а есть формула, которая считает, т.е. С5/С6.
Хочется иметь макрос, который посмотрит в ячейку, возьмет тамошнюю формулу, всунет ее в формулу с ЕСЛИ и вставит уже полную формулу (с Если) в эту ячейку.

Теперь проблема:
Пишу следующий макрос

Sub Макрос1()

' Берем формулу текущей ячейки и отрезаем у нее знак "=" слева.
cont = Right(ActiveCell.Formula, Len(ActiveCell.Formula) - 1)

' Вставляем в новую формулу. Chr(34) это кавычки.
newcont = Chr(34) & "=если(еошибка(" & cont & ");" & Chr(34) & Chr(34) & ";" & cont & ")" & Chr(34)

' удаляем старую формулу
ActiveCell.ClearContents

' вставляем новую формулу
ActiveCell.Formula = newcont

End Sub

Вылетает на строчке выделенной красным цветом.
Причем если формулу указать явным образом и выкинуть всякие ЕСЛИ, то работает. ПРобовал менять Если на IF, тоже не работает. Выдает ошибку Application or Object defined error.

В чем дело?
...
Рейтинг: 0 / 0
03.02.2004, 11:48
    #32396332
PA
PA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная вставка формулы в ячейку Excel
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
newcontrus =  "=если(еошибка("  & cont &  ");"  & Chr( 34 ) & Chr( 34 ) &  ";"  & cont &  ")" 
newcont =  "=if(iserror("  & cont &  "),"  & Chr( 34 ) & Chr( 34 ) &  ","  & cont &  ")" 
' удаляем старую формулу
ActiveCell.ClearContents

' вставляем новую формулу
ActiveCell.FormulaLocal = newcontrus
ActiveCell.Formula = newcont
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Программная вставка формулы в ячейку Excel / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]