VBA IIF - Как да използвам функцията VBA IIF в Excel? (с примери)

Съдържание

Excel VBA IIF

Ако сте редовен потребител на VBA макроси, тогава трябва да сте попаднали на функцията, наречена „IIF“, или може да сте виждали тази функция в интернет. На пръв поглед, защото сигурно сте си помислили, че това е условие за IF като нашето редовно изявление за IF в Excel. Но това не е същото твърдение IF, което използваме за оценка на логически тестове и получаване на резултати въз основа на критериите, които даваме. В тази статия ще ви преведем през условието „VBA IIF“ във VBA.

Какво прави състоянието на IIF във VBA?

Това е много подобно на нашето IF състояние, но малко по-различно по своя характер. Условието “VBA IIF” тества предоставения израз или логически тест и в резултат връща TRUE или FALSE.

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

Погледнете синтаксиса на функцията IIF.

  • Израз: Това не е нищо друго освен логически тест, който бихме искали да проведем.
  • Ture Част: Ако логическият тест е TRUE, тогава каква трябва да бъде TRUE частта.
  • False Part: Ако логическият тест е FALSE, тогава какъв трябва да бъде резултатът от FALSE частта.

Можем да въведем собствени резултати с ИСТИНСКИ И НЕВЯРНИ части. Въпреки че аргументите изглеждат подобни на тези на условието IF, това ще бъде малко по-различно. Ще видим това в примерите за Excel VBA IIF функция.

Една от ключовите разлики между обикновения „IF“ и този „IIF“ е, че можем да намалим кода до един ред с Iwherewithw IF условие и са необходими минимум 5 реда, за да се получи същия резултат.

Пример за VBA IIF функция

По-долу са примерите за VBA IIF функция в Excel.

Пример # 1 - VBA IIF

Добре, ще видим един прост пример за IIF функция. Сега ще тестваме дали едно число е по-голямо или по-малко от друго число. Следвайте стъпките по-долу, за да напишете кода на VBA.

Стъпка 1: Стартирайте макроса.

Стъпка 2: Дефинирайте променливата като String в VBA.

Код:

Sub IIF_Example () Dim FinalResult As String End Sub

Стъпка 3: Определете още две променливи като Long във VBA.

Код:

Sub IIF_Example () Dim Final Резултат като низ Dim Number1 As Long Dim Number2 As Long End Sub

Стъпка 4: Сега за променливата “Number1” задайте стойността 105 и за променливата “Number2” задайте стойността 100.

Код:

Sub IIF_Example () Dim Final Резултат като низ Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 End Sub

Стъпка 5: Сега за първата дефинирана променлива „FinalResult“ ще присвоим резултата от функцията IIF. Така че отворете IIF за променливата.

Стъпка 6: Поставете израза като Number1> Number2.

Стъпка 7: Ако изразът е TRUE, какъв трябва да бъде резултатът. Ще присвоя резултата като „Номер 1 е по-голям от номер 2“.

Стъпка 8: Ако изразът е FALSE, какъв трябва да бъде резултатът. Ще присвоя резултата като „Номер 1 е по-малко от номер 2“.

Сега стойността на променливата ще бъде някоя от долупосочените.

Ако е вярно: „Номер 1 е по-голямо от число 2.“

Ако е невярно: „Номер 1 е по-малко от номер 2.“

Стъпка 9: Нека покажем резултата в поле за съобщение във VBA.

Код:

Sub IIF_Example () Затъмняване на окончателен резултат като низ Нисък номер1 Като дълъг димен номер2 Като дълъг номер1 = 105 номер2 = 100 Окончателен резултат = IIf (Номер1> Номер2, "Номер 1 е по-голям от номер 2", "Номер 1 е по-малък от номер 2") MsgBox FinalResult Край Sub

Сега нека пуснем кода и ще видим резултата.

Тъй като стойността номер 1 е 105, което е по-голямо от стойността номер 2 на 100, получихме резултата като „Номер 1 е по-голям от номер 2“. Тъй като изразът е TRUE, условието на IIF върна този резултат.

Пример # 2 - IF срещу IIF

You must be wondering what the difference between IF & IIF is. Yes, there is a difference in coding. For example, look at the IF condition code.

Code:

Sub IIF_Example() Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 If Number1> Number2 Then MsgBox "Number 1 is Greater than Number 2" Else MsgBox "Number 1 is Less than Number 2" End If End Sub

Using IF first, we have applied a logical test.

If Number1> Number2 Then

Then if the logical test is true, we have applied the result.

MsgBox "Number 1 is Greater than Number 2"

Then if the logical test is false, we have applied the different results.

MsgBox "Number 1 is Less than Number 2"

И двете функции връщат един и същ резултат, но с IIF можем да кодираме само в един ред, където операторът IF изисква множество редове.

Пример # 3 - VBA вложено IIF състояние

Подобно на това как използваме вложен IF за тестване на множество условия по подобен начин, можем да използваме и множество IIF. Погледнете кода по-долу.

Код:

Sub IIF_Example2 () Dim FinalResult As String Dim Marks As Long Marks = 98 FinalResult = IIf (Marks> 90, "Dist", IIf (Marks> 80, "First", IIf (Marks> 70, "Second", IIf (Marks > 60, "Трето", "Неуспешно")))) MsgBox FinalResult End Sub

Горното IIF условие тества пет логически теста и съответно връща резултата.

Интересни статии...