Энергозависимые функции Excel VBA - простые макросы Excel

Содержание

По умолчанию UDF (определяемые пользователем функции) в Excel VBA не изменчивы. Они пересчитываются только при изменении любого из аргументов функции. А летучая функция будет пересчитываться всякий раз, когда вычисления происходят в любых ячейках на листе. Давайте рассмотрим простой пример, чтобы объяснить это немного подробнее.

1. Откройте редактор Visual Basic и щелкните Вставить, Модуль.

Создайте функцию с именем MYFUNCTION, которая возвращает сумму выбранной ячейки и ячейки под этой ячейкой.

2. Добавьте следующие строки кода:

Функция MYFUNCTION (ячейка как диапазон)
MYFUNCTION = cell.Value + cell.Offset (1, 0) .Value
Конечная функция

3. Теперь вы можете использовать эту функцию, как и любую другую функцию Excel.

4. Это энергонезависимая функция. Энергонезависимые функции пересчитываются только при изменении любого из аргументов функции. Измените значение ячейки B2 на 8.

5. Теперь измените значение ячейки B3 на 11.

Объяснение: энергонезависимая функция не пересчитывается при изменении любой другой ячейки на листе.

6. Обновите функцию следующим образом, чтобы она стала нестабильной:

Функция MYFUNCTION (ячейка как диапазон)
Application.Volatile
MYFUNCTION = cell.Value + cell.Offset (1, 0) .Value
Конечная функция

7. Измените значение ячейки B3 на 12.

Результат:

Примечание: вам нужно ввести функцию еще раз, чтобы сделать ее изменчивой (или обновите ее, поместив курсор в строку формул и нажав клавишу ВВОД).

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave