Функція IIF Excel VBA

VBA IIF (також відомий як негайне значення If) - це твердження, яке ви, можливо, часто бачили, кодуючи під VBA і створюючи макроси. Це схоже на функцію IF Excel, де ви записуєте логічну умову і дає два виходи, якщо умова є істинною та якщо умова помилковою. Якщо, дивлячись на це, ви вважаєте це функцією, подібною до VBA IF, яку ми використовуємо для оцінки логічних тестів та умов, ви помиляєтесь. Це, здається, близьке до VBA Якщо і в ідеалі, можна сказати, що вони дійсно мають невелику різницю між ними під час виконання. У цій статті ми отримаємо більш детальну інформацію про заяву VBA IIF та про те, як використовувати її у щоденному житті кодування для полегшення наших завдань.

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

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

Синтаксис функції VBA IIF у excel такий:

Де,

  • Вираз: це логічна умова, яку ми хотіли оцінити за функцією IIF
  • TruePart: це значення / результат, який ми очікуємо, коли логічна умова / вираз - ІСТИНА.
  • FalsePart: це значення / результат, який ми очікуємо, коли логічна умова / вираз є ЛІЖНИМ.

Як використовувати Excel VBA IIF?

Тепер спробуємо з кількома прикладами щодо VBA IIF в Excel.

Ви можете завантажити цей шаблон VBA IIF Excel тут - шаблон VBA IIF Excel

Візьмемо простий приклад, щоб побачити, як IIF працює в Microsoft VBA.

Приклад №1 - VBA IIF

Крок 1: Відкрийте візуальний базовий редактор (VBE). Перейдіть на вкладку Вставка та натисніть Модуль . Він додасть новий модуль під VBE.

Крок 2. Визначте нову процедуру, яка може містити ваш макрос у цьому модулі.

Код:

 Підрозділ IIf_Ex1 () Закінчення Sub 

Крок 3: Визначте дві нові змінні Var_1 як довгі та результати з типом даних як варіантом.

Код:

 Sub IIf_Ex1 () Dim var_1 Як результат тривалого затемнення як булевий кінець Sub 

Крок 4: Призначте Var_1 числове значення, щоб ми могли використовувати цю змінну для перевірки логічної умови IIF.

Код:

 Sub IIf_Ex1 () Dim var_1 Як довгий результат Dim, як булева var_1 = 5 Кінець Sub 

Крок 5: Використовуйте змінну Result для збереження логічної умови IIF, за якої ми збираємося перевірити, чи значення, присвоєне Var_1, більше або дорівнює 10.

Код:

 Sub IIf_Ex1 () Dim var_1 Як довгий результат Dim, як логічний var_1 = 5 Результат = IIf (var_1> = 10, вірно, помилково) Кінець Sub 

Крок 6: Тепер використовуйте Debug.Print для друку результату стану IIF на панелі перегляду негайних результатів.

Код:

 Sub IIf_Ex1 () Dim var_1 Як довгий результат Dim як As Boolean var_1 = 5 Результат = IIf (var_1> = 10, правда, помилково) Debug.Print Result End Sub 

Крок 7: Запустіть цей код, натиснувши клавішу F5 або Запустити у верхній частині панелі та побачити вихід у області негайного виводу.

Приклад №2 - VBA IIF

Припустимо, у нас на робочому аркуші є такі дані:

Все, що ми хочемо, - це висновок під стовпцем B таким, що або число є парним, або непарним.

Крок 1: Визначте нову підпроцедуру під VBE.

Код:

 Під IIF_Ex2 () Закінчення Sub 

Крок 2: Визначте дві змінні "a" та "Numbers" як довгі.

Код:

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

Крок 3: Почніть цикл For, під яким ми хочемо циклічити всі значення, наявні в комірці A2: A11. Петля розпочнеться від 2 до 11 (оскільки у колонках A і B є заголовки в рядку 1).

Код:

 Sub IIF_Ex2 () Dim a As Long Dim Number As Long For a = 2 To 11 End Sub 

Крок 4: Використовуйте змінну чисел, визначену раніше, для зберігання всіх чисел із стовпця А, що залежать від заданого діапазону, використовуючи оператор присвоєння (A2: A11). Для цього використовуйте наступний рядок коду.

Number = Sheet1.Range ("A" & a)

Код:

 Підрозділ IIF_Ex2 () Розміряє а Довге число Дим, як довге, для а = 2 до 11 Число = Таблиця. Ранг ("А" і а) Кінець підряд 

Цей рядок коду дозволяє VBA пробігати всі рядки в стовпці A з "Sheet1" у excel один за іншим під циклом For.

Крок 5: Використовуйте IIF, щоб перевірити, чи значення кожної комірки є парним чи непарним, і збережіть результати під кожною коміркою стовпця B. Наступний рядок коду зробить завдання для вас.

Sheet1.Range (“B” & a) .Value = IIf (Число Mod 2 = 0, “Четний”, “Непарний”)

Код:

 Підрозділ IIF_Ex2 () Dim a Довге число Dim, яке довге, a = 2 - 11 Число = Sheet1.Range ("A" & a) Sheet1.Range ("B" & a) .Value = IIf (Число Mod 2 = 0, "Непарний", "Непарний") Кінець Підд 

Тут, у цьому рядку, ми хочемо, щоб результати зберігалися під кожною коміркою стовпця B з Sheet1. Тому ми використовували “Sheet1.Range (“ B ”& i) .Value” з лівого боку фрагмента коду. Ми використовували IIF, щоб перевірити, чи число ділиться на 2, використовуючи Mod (оператор Modulo за VBA). Нарешті, ми хочемо отримати висновок про те, чи є число парним чи непарним у стовпці В. Отже, ці два значення згадуються під оператором IIF.

Крок 6: Закрийте цикл For за допомогою Next, щоб після кожної ітерації система рухалася до наступної комірки на аркуші, поки не досягне 11- го ряду.

Код:

 Підрозділ IIF_Ex2 () Dim a Довге число Dim, яке довге, a = 2 - 11 Число = Sheet1.Range ("A" & a) Sheet1.Range ("B" & a) .Value = IIf (Число Mod 2 = 0, "Непарний", "Непарний") Наступний кінець Підряд 

Крок 7: Це все. Запустіть цей код, натиснувши клавішу F5 або кнопку «Запустити», розміщену на самій верхній панелі VBE. Після запуску цього макроса ви побачите результат, як показано нижче в аркуші1 (названому як "Приклад_1") робочої книги Excel.

Приклад №3 - VBA IIF

Зараз ми побачимо вкладений оператор IIF:

Це той самий спосіб, коли ми вкладаємо декілька умов ІФ в один цикл.

Припустимо, ті самі дані, що ми використовували в попередньому випадку. Все, що ми хотіли, - це написати код, який дозволяє нам розрізняти числа таким чином:

  • Якщо число від 1 до 3 (включено 3), у стовпці В. слід зазначити "Малий".
  • Якщо число становить від 4 до 6 (включено 6), у колонці B. слід зазначити "Середній".
  • Якщо число становить від 7 до 10 (включено 10), у колонці B. слід зазначити "Велике".

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

Крок 1. Визначте нову підпроцедуру під своїм VBE, яка може містити ваш макрос.

Код:

 Sub NestedIf () Кінець Sub 

Виконайте крок 2 - крок 4 так само, як у наведеному вище прикладі (приклад 2 у цій статті). Він включає визначення змінних та додавання всіх чисел, присутніх у стовпці А під циклом For.

Крок 5: Використовуйте наступний фрагмент коду, щоб отримати бажаний вихід.

Код:

 Sub NestedIf () Dim Dim as Long As a = 2 to 11 Number = Sheet2.Range ("A" & a) Sheet2.Range ("B" & a) .Value = IIf (Number = 7, "Large", " Середній ")) Кінцевий підряд 

Крок 6: Закрийте цикл For з наступним оператором і запустіть цей код за допомогою кнопки F5 або Run, присутньої на верхній стрічці під VBE. Після запуску коду ви побачите вихід, як показано нижче:

Тут у цьому коді використовується вкладений IIF. Під першим IIF нам дається те, що повинно бути надруковано у колонці B, коли числа між 1 і 3. Під другим IIF ми згадали, що слід надрукувати під стовпцем B, коли цифри більше або дорівнюють 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

Категорія: