Перейти к содержимому

VBA Excel. Функция Switch (синтаксис, примеры)

Применение функции Switch в коде VBA Excel для выбора значения из списка пар аргументов (выражение, значение) по выражению, имеющему значение True.

  1. Описание функции Switch
  2. Примеры кода с функцией Switch

Описание функции Switch

Функция Switch в VBA Excel анализирует выражения из пар аргументов (выражение, значение) по списку слева направо. Она возвращает значение из первой пары, в которой выражение имеет значение True. Если ни одно выражение из списка не равно True, функция возвращает значение Null.

Синтаксис

Switch(expr-1, value-1, expr-2, value-2, ... expr-n, value-n)

Аргументы

  • expr – выражение, задающее условие выбора значения из пары;
  • value – значение*, возвращаемое функцией Switch, если выражение из пары возвратит значение True;
  • expr-1, value-1 – первая пара аргументов (выражение, значение).

* Значение может быть выражением.

Несмотря на то, что функция Switch возвращает значение, связанное с первым выражением, имеющем значение True, она проверяет все выражения из списка.

По своему функционалу функция Switch, использующаяся в VBA Excel, аналогична оператору Select Case.

Примеры кода с функцией Switch

Пример 1
Варианты выражений, задающих условия выбора значений из пар (выражение, значение):

Sub Primer1()
Dim var As Double
var = -10.12
MsgBox Switch(var = 0, "Ноль", _
var > 0 And var <= 10, "Число от 1 до 10", _
var > 10, "Число больше 10", _
var < 0, "Число отрицательное")
End Sub

Функция Switch возвращает значение в зависимости от числа, присвоенного переменной var.

Пример 2
Пользовательская функция, определяющая время года по названию месяца с помощью функции Switch:

Function VremyaGoda(Mesyats As String)
VremyaGoda = Switch(Mesyats = "Декабрь" _
Or Mesyats = "Январь" Or Mesyats = "Февраль", _
"Зима", Mesyats = "Март" Or Mesyats = "Апрель" _
Or Mesyats = "Май", "Весна", Mesyats = "Июнь" _
Or Mesyats = "Июль" Or Mesyats = "Август", _
"Лето", Mesyats = "Сентябрь" Or Mesyats = "Октябрь" _
Or Mesyats = "Ноябрь", "Осень")
End Function

Чтобы протестировать функцию VremyaGoda, скопируйте ее в стандартный модуль проекта VBA. Вставить эту функцию на рабочий лист Excel можно с помощью мастера функций из раздела «Определенные пользователем».

Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора. При добавлении в комментарий кода VBA Excel, вставьте перед его началом тег [vb] и по окончании кода - [/vb].