Как вернуть значение из функции vba (с примерами)
Чтобы вернуть значение из функции в VBA, вы должны присвоить значение имени функции.
Например, мы можем создать следующую функцию для разделения двух значений и последующего возврата результата деления:
Function DivideValues(x,y)
DivideValues = x / y
End Function
Имя этой функции — DivideValues , поэтому, чтобы вернуть значение из этой функции, нам нужно присвоить результат x/y одноименной переменной из DivideValues .
Если ваша функция использует логику If Else , вы можете присвоить значение имени функции несколько раз.
Например, вы можете создать следующую функцию, которая возвращает «Невозможно разделить на ноль», если вы пытаетесь разделить на ноль, или просто возвращает результат деления:
Function DivideValues(x,y)
If y = 0 Then
DivideValues = " Cannot divide by zero "
Else
DivideValues = x / y
End If
End Function
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: как вернуть значение из функции VBA
Предположим, мы хотим создать в VBA функцию для деления значения ячейки A2 на значение ячейки B2 :
Для этого мы можем создать следующую функцию:
Function DivideValues(x,y)
DivideValues = x / y
End Function
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Функция возвращает значение 5 , которое является результатом деления 50 на 10.
Мы также могли бы создать функцию, которая использует логику If Else, чтобы сначала проверить, не равно ли значение, на которое мы делим, нулю:
Function DivideValues(x,y)
If y = 0 Then
DivideValues = " Cannot divide by zero "
Else
DivideValues = x / y
End If
End Function
Если мы изменим значение в ячейке B2 , а затем воспользуемся этой функцией для выполнения деления, мы получим следующий результат:
Поскольку мы попытались разделить на ноль, функция возвращает «Невозможно разделить на ноль».
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
Как закомментировать блок кода в VBA
Как проверить, существует ли файл с помощью VBA
Как создавать папки с помощью VBA