Как определить, когда произошёл пересчёт нужной пользовательской функции?
Категория: Basic
2012-09-05 15:55:04
Для того, чтобы узнать, когда произошёл пересчёт необходимой пользовательской функции, можно:
- воспользоваться переменной, значение которой False/True будет зависеть от пересчёта нужной UDF. И, конечно же, не забыть объявить эту переменную как Public.
- добавить в нужную пользовательскую функцию инструкцию, которая будет отвечать за изменение значения вышеупомянутой переменной.
- использовать, например, событие рабочего листа Worksheet_Calculate() вкупе с небольшой проверкой и восстановлением первоначального значения переменной.
code: #vba
Public iCalculate As Boolean Public Function MyFunction() 'Здесь производятся необходимые вычисления 'MyFunction = Result iCalculate = True End Function
code: #vba
Private Sub Worksheet_Calculate() If iCalculate = True Then iCalculate = False MsgBox "Произошёл пересчёт нужной UDF", , Time$ 'Функцию MsgBox можно заменить на нужные инструкции End If End Sub
Поделиться: