За замовчуванням 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 (клітинка як діапазон)
Застосування
MYFUNCTION = cell.Value + cell.Offset (1, 0) .Value
Функція завершення
7. Змініть значення комірки B3 на 12.
Результат:
Примітка: вам потрібно знову ввести функцію, щоб зробити її мінливою (або оновити, розмістивши курсор у рядку формул і натиснувши Enter).