Excel VBA IIF
Ak ste bežným používateľom makier VBA, určite ste sa stretli s funkciou nazvanou „IIF“, alebo ste túto funkciu pravdepodobne videli na internete. Na prvý pohľad ste si určite mysleli, že ide o podmienku IF, ako je náš bežný príkaz IF v programe Excel. Ale nejde o to isté vyhlásenie IF, ktoré používame na hodnotenie logických testov a na získanie výsledkov na základe kritérií, ktoré dáme. V tomto článku vás prevedieme podmienkou „VBA IIF“ vo VBA.
Čo robí podmienka IIF vo VBA?
Toto je veľmi podobné nášmu stavu IF, ale mierne odlišné povahy. Podmienka „VBA IIF“ testuje dodaný výraz alebo logický test a ako výsledok vrátila hodnotu TRUE alebo FALSE.
Syntax VBA IIF
Zoznámte sa so syntaxou funkcie IIF.

- Výraz: Toto nie je nič iné ako logický test, ktorý by sme chceli vykonať.
- Turecká časť: Ak je logický test TRUE, potom čo by mala byť TRUE časť.
- Falošná časť: Ak je logický test FALSE, čo by malo byť výsledkom FALSE časti.
Môžeme zadávať naše vlastné výsledky pomocou PRAVDIVÝCH a NEPRAVÝCH častí. Aj keď argumenty vyzerajú podobne ako argumenty podmienky IF, budú sa mierne líšiť. To uvidíme v príkladoch funkcie Excel VBA IIF.
Jedným z kľúčových rozdielov medzi bežným „IF“ a týmto „IIF“ je, že môžeme kód zmenšiť na jeden riadok s podmienkou Iwherewithw IF a na dosiahnutie rovnakého výsledku je potrebných minimálne 5 riadkov.

Príklad funkcie VBA IIF
Nižšie uvádzame príklady funkcií VBA IIF v programe Excel.
Príklad č. 1 - VBA IIF
Dobre, uvidíme jeden jednoduchý príklad funkcie IIF. Teraz otestujeme, či je jedno číslo väčšie alebo menšie ako iné číslo. Podľa nasledujúcich pokynov napíšete kód VBA.
Krok 1: Spustite makro.
Krok 2: Definujte premennú ako reťazec vo VBA.
Kód:
Sub IIF_Example () Dim FinalResult ako reťazec End Sub

Krok 3: Vo VBA definujte ďalšie dve premenné ako Long.
Kód:
Sub IIF_Example () Dim DimResult Ako reťazec Dim Number1 As Long Dim Number2 As Long End Sub

Krok 4: Teraz priraďte k premennej „Number1“ hodnotu 105 a k premennej „Number2“ hodnotu 100.
Kód:
Sub IIF_Example () Dim DimResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 End Sub

Krok 5: Teraz k prvej definovanej premennej „FinalResult“ priradíme výsledok funkcie IIF. Takže otvorte IIF pre premennú.

Krok 6: Zadajte výraz ako Číslo1> Číslo2.

Krok 7: Teraz, ak je výraz TRUE, aký by mal byť výsledok. Výsledok priradím ako „Číslo 1 je väčšie ako číslo 2“.

Krok 8: Teraz, ak je výraz NEPRAVDA, aký by mal byť výsledok. Výsledok priradím ako „Číslo 1 je menšie ako Číslo 2“.

Teraz bude hodnota premennej buď jedna z nasledujúcich.
Ak je pravda: „Číslo 1 je väčšie ako číslo 2.“
Ak je nepravdivé: „Číslo 1 je menšie ako číslo 2.“
Krok 9: Ukážme výsledok v okne správy vo VBA.
Kód:
Sub IIF_Example () Stlmiť FinalResult ako reťazec Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 FinalResult = IIf (Number1> Number2, "Number 1 is Greater than Number 2", "Number 1 is less than Number 2") MsgBox FinalResult End Sub

Teraz spustíme kód a uvidíme výsledok.

Pretože hodnota číslo 1 je 105, čo je viac ako hodnota číslo 2 100, dostali sme výsledok ako „číslo 1 je väčšie ako číslo 2“. Pretože je výraz TRUE, podmienka IIF vrátila tento výsledok.
Príklad č. 2 - IF vs. 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"
Obe funkcie vracajú rovnaký výsledok, ale s IIF môžeme kódovať iba v jednom riadku, kde príkaz IF vyžaduje viac riadkov.
Príklad # 3 - VBA vnorená podmienka IIF
Rovnako ako používame vnorené IF na podobné testovanie viacerých podmienok, môžeme použiť aj viacnásobné IIF. Prezrite si nižšie uvedený kód.
Kód:
Sub IIF_Example2 () Dim FinalResult As String Dim Marks Long Marks = 98 FinalResult = IIf (Marks> 90, "Dist", IIf (Marks> 80, "First", IIf (Marks> 70, "Second", IIf (Marks) > 60, „Tretí“, „Zlyhanie“)))) MsgBox FinalResult Koniec Sub

Vyššie uvedená podmienka IIF testuje päť logických testov a podľa toho vráti výsledok.