"Одноразовая" пользовательская функция

Программирование на Visual Basic for Applications
Avia
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 06.05.2005 (Пт) 14:55

"Одноразовая" пользовательская функция

Сообщение Avia » 06.05.2005 (Пт) 15:44

Привет. Можно ли сделать следующее: есть своя функция в модуле, например вставляет перед текущей ячейкой разделитель страниц (для печати) или просто выдает MsgBox. Нужно что бы после своей первой отработки она прекратила свою деятельность. Смысл - Excel файл генерится сторонней программой, не умеющей вставлять разделители\картинки и т.п. Но в шаблоне можно установить функцию, которая отрабоботает в нужном месте в момент генерации этого итогового файла. Проблема: как только пытаешься внутри функции стереть формулу текущей ячейки или прописать value в другую происходит ошибка вычисления функции - причину примерно понимаю - можно ли обойти, может кто сталкивался. Спасибо.

'Пример: в ячейке B1 стоит =TEST()
'Вопрос: Как в ней изменить другую ячейку

Public Function TEST() As String
MsgBox (Range("A1").Value + 1)
Range("A1").Value = Range("A1").Value + 1
TEST = ""
End Function

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.05.2005 (Пт) 15:56

Функциям листа запрещено менять лист. Рассмотри возможность пост-обработки уже сгенеренного документа.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList