VBA IIF - Как использовать функцию VBA IIF в Excel? (Загружаемый шаблон)

Содержание:

Anonim

Функция Excel VBA IIF

VBA IIF (также известный как Immediate If) - это оператор, который вы часто видели при кодировании в VBA и создании макросов. Это похоже на функцию IF в Excel, где вы записываете логическое условие и выдает два выхода, если условие истинно и если условие ложно. Если, глядя на это, вы думаете, что это функция, похожая на VBA IF, которую мы используем для оценки логических тестов и условий, вы ошибаетесь. Кажется, это близко к VBA. Если и в идеале, можно сказать, что они действительно имеют небольшую разницу между ними во время исполнения. В этой статье мы получим больше информации об операторе VBA IIF и о том, как его использовать в нашей повседневной жизни, чтобы упростить наши задачи.

Оператор VBA IIF работает аналогично выражению Excel IF. Он проверяет предоставленное условие или логический оператор и выдает выходные данные, связанные с условием TRUE или когда условие имеет значение FALSE.

Синтаксис IIF в Excel VBA

Синтаксис для функции VBA IIF в Excel выглядит следующим образом:

Где,

  • Выражение: это логическое условие, которое мы хотели оценить в рамках функции IIF
  • TruePart: это ожидаемое значение / результат, когда логическое условие / выражение TRUE.
  • FalsePart: это ожидаемое значение / результат, когда логическое условие / выражение равно FALSE.

Как использовать Excel VBA IIF?

Теперь давайте попробуем с некоторыми примерами VBA IIF в Excel.

Вы можете скачать этот шаблон VBA IIF Excel здесь - Шаблон VBA IIF Excel

Давайте рассмотрим простой пример, чтобы увидеть, как IIF работает под Microsoft VBA.

Пример № 1 - VBA IIF

Шаг 1. Откройте редактор Visual Basic (VBE). Перейдите на вкладку « Вставка » и нажмите « Модуль» . Это добавит новый модуль под VBE.

Шаг 2: Определите новую подпроцедуру, которая может содержать ваш макрос в этом модуле.

Код:

 Sub IIf_Ex1 () End Sub 

Шаг 3: Определите две новые переменные Var_1 как Long и Result с типом данных в качестве варианта.

Код:

 Sub IIf_Ex1 () Dim var_1 As Long Dim Result As Boolean End Sub 

Шаг 4: Присвойте числовое значение Var_1, чтобы мы могли использовать эту переменную для проверки логического условия IIF.

Код:

 Sub IIf_Ex1 () Dim var_1 As Long Dim Result As Boolean var_1 = 5 End Sub 

Шаг 5: Используйте переменную Result, чтобы сохранить логическое условие IIF, при котором мы собираемся проверить, больше ли значение, присвоенное Var_1, или равно 10.

Код:

 Sub IIf_Ex1 () Dim var_1 As Long Dim Результат как Boolean var_1 = 5 Результат = IIf (var_1> = 10, True, False) End Sub 

Шаг 6: Теперь используйте Debug.Print, чтобы напечатать результат условия IIF на панели немедленного просмотра результатов.

Код:

 Sub IIf_Ex1 () Dim var_1 As Long Dim Result As Boolean var_1 = 5 Result = IIf (var_1> = 10, True, False) Debug.Print Результат End Sub 

Шаг 7: Запустите этот код, нажав F5 или кнопку Run в верхней части панели, и просмотрите результат в разделе «Немедленный вывод».

Пример № 2 - VBA IIF

Предположим, у нас есть данные в таблице:

Все, что нам нужно, - это вывод в столбце B, такой, чтобы число было четным или нечетным.

Шаг 1: Определите новую подпроцедуру в VBE.

Код:

 Sub IIF_Ex2 () End Sub 

Шаг 2: Определите две переменные «a» и «Numbers» как Long.

Код:

 Sub IIF_Ex2 () Dim a As Long Dim Number As Long End Sub 

Шаг 3: Запустите цикл For, в котором мы хотим зациклить все значения, присутствующие в ячейке A2: A11. Цикл начнется со 2 до 11 (потому что у нас есть заголовки в строке 1 для столбцов A и B).

Код:

 Sub IIF_Ex2 () Dim a As Long Dim Number As Long Для a = от 2 до 11 End Sub 

Шаг 4: Используйте переменную номера, определенную ранее, чтобы сохранить все числа из столбца A, изменяющиеся в заданном диапазоне, с помощью оператора присваивания (A2: A11). Используйте следующую строку кода, чтобы сделать это.

Number = Sheet1.Range («A» & a)

Код:

 Sub IIF_Ex2 () Dim a As Long Dim Number As Long Для a = от 2 до 11 Number = Sheet1.Range ("A" & a) End Sub 

Эта строка кода позволяет VBA по очереди проходить через все строки в столбце A из «Sheet1» в Excel в цикле For.

Шаг 5: Используйте IIF, чтобы проверить, является ли каждое значение ячейки четным или нечетным, и сохраните результаты под каждой ячейкой столбца B. Следующая строка кода выполнит задачу за вас.

Sheet1.Range («B» & a). Значение = IIf (Число Mod 2 = 0, «Четный», «Нечетный»)

Код:

 Sub IIF_Ex2 () Уменьшить как длинное Уменьшить число до a Для номера от 2 до 11 = Sheet1.Range ("A" & a) Sheet1.Range ("B" & a). Значение = IIf (Number Mod 2 = 0, "Четный", "Нечетный") End Sub 

Здесь, в этой строке, мы хотим, чтобы результаты сохранялись под каждой ячейкой столбца B из Sheet1. Поэтому мы использовали «Sheet1.Range (« B »& i) .Value» в левой части кода). Мы использовали IIF, чтобы проверить, делится ли число на 2, используя Mod (оператор Modulo в VBA). Наконец, мы хотим получить вывод о том, является ли число четным или нечетным в столбце B. Поэтому эти два значения упоминаются в операторе IIF.

Шаг 6: Закройте цикл For с помощью оператора Next, чтобы после каждой итерации система двигалась к следующей ячейке в листе, пока не достигнет 11- й строки.

Код:

 Sub IIF_Ex2 () Уменьшить как длинное Уменьшить число до a Для номера от 2 до 11 = Sheet1.Range ("A" & a) Sheet1.Range ("B" & a). Значение = IIf (Number Mod 2 = 0, "Четный", "Нечетный") Next End Sub 

Шаг 7: Вот и все. Запустите этот код, нажав F5 или кнопку Run, расположенную в самой верхней панели VBE. Запустив этот макрос, вы увидите вывод, как показано ниже в листе 1 (названном «Пример_1») книги Excel.

Пример № 3 - VBA IIF

Теперь мы увидим вложенное заявление IIF:

Это то же самое, что мы вкладываем несколько условий IF в один цикл.

Предположим, те же данные, которые мы использовали в предыдущем случае. Все, что мы хотели, это написать код, который позволит нам различать числа следующим образом:

  • Если число находится в диапазоне от 1 до 3 (включая 3), в колонке В следует указать «Маленький».
  • Если число составляет от 4 до 6 (6 включительно), в колонке В должно быть упомянуто «Среднее».
  • Если число находится в диапазоне от 7 до 10 (включая 10), в колонке B следует указать «Большой».

Давайте напишем код для этого типа IIF:

Шаг 1: Определите новую подпроцедуру под вашим VBE, которая может содержать ваш макрос.

Код:

 Sub NestedIf () End Sub 

Выполните шаги с 2 по 4 так же, как в приведенном выше примере (пример 2 в этой статье). Он включает в себя определение переменных и добавление всех чисел, представленных в столбце A в цикле For.

Шаг 5: Используйте следующий фрагмент кода, чтобы получить желаемый результат.

Код:

 Sub NestedIf () Dim Number as Long Для a = от 2 до 11 Number = Sheet2.Range ("A" & a) Sheet2.Range ("B" & a). Значение = IIf (Number = 7, "Large", " Средний ")) End Sub 

Шаг 6: Закройте цикл For с помощью оператора Next и запустите этот код, используя клавишу F5 или кнопку Run, расположенную на верхней ленте под VBE. Как только вы запустите код, вы увидите вывод, как показано ниже:

Здесь, в этом коде, используется вложенный IIF. При первом ИИФ нам дается то, что должно быть напечатано в столбце В, когда числа находятся в диапазоне от 1 до 3. В рамках второго ИИФ мы упомянули, что должно быть напечатано в столбце В, если числа больше или равны 7 и под то же самое IIF, мы предоставили то, что должно быть напечатано в столбце B, когда цифры не находятся в диапазоне от 1 до 3 и от 7 до 10.

Таким образом, мы можем добавить несколько IIF под одним кодом и вкладывать их. Это из этой статьи. Давайте завернем эту вещь некоторыми вещами, которые нужно запомнить.

То, что нужно запомнить

  • IIF всегда оценивает обе части (ИСТИНА и ЛОЖЬ) для определенного условия. Тем не менее, он печатает только ЛОЖНУЮ часть, когда ничего не ИСТИНА.
  • Написание сокращается по сравнению со стандартными утверждениями If-Else.
  • Это не очень хорошо известно, поэтому некоторые пользователи могут не понимать ваш код, если вы использовали IIF вместо обычного If-Else.

Рекомендуемые статьи

Это руководство по VBA IIF. Здесь мы обсудим, как использовать Excel VBA IIF вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. Работа с VBA Active Cell
  2. Удаление строки в VBA
  3. Как использовать Excel VBA Transpose?
  4. Как исправить ошибку 1004 с помощью VBA