/ / Летливи функции на Excel VBA

Променливи функции на Excel VBA

По подразбиране UDF (потребителски дефинирани функции) в Excel VBA не са летливи. Те се преизчисляват само когато някой от аргументите на функцията се промени летлива функция ще бъде преизчислено, когато се извършва изчисление във всички клетки в работния лист. Нека да разгледаме един лесен пример, за да обясним това малко повече.

1. Отворете редактора на Visual Basic и кликнете върху Вмъкни, Модул.

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

2. Добавете следните кодови редове:

Function MYFUNCTION(cell As Range)

MYFUNCTION = cell.Value + cell.Offset(1, 0).Value

End Function

3. Сега можете да използвате тази функция, точно както всяка друга функция на Excel.

Нестабилна функция в Excel VBA

4. Това е енергонезависима функция. Непостоянните функции се преизчисляват само когато някой от аргументите на функцията се промени. Променете стойността на клетката B2 до 8.

функция

Сега променете стойността на клетката B3 на 11.

Всякакви други промени в клетките

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

6. Обновете функцията по следния начин, за да направите функцията лесна:

Function MYFUNCTION(cell As Range)

Application.Volatile
MYFUNCTION = cell.Value + cell.Offset(1, 0).Value

End Function

7. Променете стойността на клетката B3 на 12.

Резултат:

Летлива функция в

Забележка: Трябва отново да въведете функцията, за да стане неясна (или да я опресните, като поставите курсора в лентата за формули и натиснете Enter).

Също така се чете: