VBA IIF | Jak používat funkci VBA IIF v aplikaci Excel? (s příklady)
Excel VBA IIF
Pokud jste běžným uživatelem maker VBA, musíte se setkat s funkcí nazvanou „IIF“ nebo jste tuto funkci mohli vidět na internetu. Na první pohled jste si určitě mysleli, že jde o podmínku IF, jako je náš běžný příkaz IF v aplikaci Excel. Ale nejde o stejný příkaz IF, který používáme k vyhodnocení logických testů a dosažení výsledků na základě kritérií, která dáme. V tomto článku vás provedeme podmínkou „VBA IIF“ ve VBA.
Co dělá podmínka IIF ve VBA?
To je velmi podobné našemu stavu IF, ale mírně odlišné povahy. Podmínka „VBA IIF“ testuje dodaný výraz nebo logický test a jako výsledek vrátí hodnotu TRUE nebo FALSE.
Syntaxe VBA IIF
Podívejte se na syntaxi funkce IIF.
- Výraz: Toto není nic jiného než logický test, který bychom chtěli provést.
- Turecká část: Pokud je logický test PRAVDA, co by mělo být výsledkem PRAVÉ části.
- Falešná část: Pokud je logický test FALSE, co by mělo být výsledkem FALSE části.
Můžeme zadat své vlastní výsledky s PRAVDIVOU a NEPRAVDOU částí. Ačkoli argumenty vypadají podobně jako podmínky IF, bude to trochu jiné. Uvidíme, že v příkladech funkce Excel VBA IIF.
Jedním z klíčových rozdílů mezi běžným „IF“ a tímto „IIF“ je, že můžeme snížit kód na jeden řádek s IIF, kde s podmínkou IF trvá minimálně 5 řádků, aby se dosáhlo stejného výsledku.
Příklad funkce VBA IIF
Níže jsou uvedeny příklady funkce VBA IIF v aplikaci Excel.
Tuto šablonu Excel VBA IIF Excel si můžete stáhnout zde - Šablona Excel VBA IIFPříklad č. 1 - VBA IIF
Dobře, uvidíme jeden jednoduchý příklad funkce IIF. Nyní otestujeme, zda je jedno číslo větší nebo menší než jiné číslo. Při psaní kódu VBA postupujte podle následujících kroků.
Krok 1: Spusťte makro.
Krok 2: Definujte proměnnou jako řetězec ve VBA.
Kód:
Sub IIF_Example () Dim FinalResult jako řetězec End Sub
Krok 3: Definujte ve VBA další dvě proměnné jako Long.
Kód:
Sub IIF_Example () Dim DimResult Jako řetězec Dim Dim Number1 As Long Dim Number2 As Long End Sub
Krok 4: Nyní proměnné „Number1“ přiřaďte hodnotu 105 a proměnné „Number2“ přiřaďte hodnotu 100.
Kód:
Sub IIF_Example () Dim FinalResult Jako řetězec Dim Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 End Sub
Krok 5: Nyní k první definované proměnné „FinalResult“ přiřadíme výsledek funkce IIF. Takže otevřete IIF pro proměnnou.
Krok 6: Zadejte výraz jako Number1> Number2.
Krok 7: Nyní, pokud je výraz PRAVDA, co by mělo být výsledkem. Výsledek přiřadím jako „Číslo 1 je větší než číslo 2“.
Krok 8: Nyní, pokud je výraz NEPRAVDA, co by mělo být výsledkem. Výsledek přiřadím jako „Číslo 1 je menší než číslo 2“.
Nyní bude hodnota proměnné jedna z níže uvedených.
Je-li pravda: „Číslo 1 je větší než číslo 2“
Pokud False: „Číslo 1 je menší než číslo 2“
Krok 9: Ukažme výsledek ve schránce zpráv ve VBA.
Kód:
Sub IIF_Example () Dim DimResult Jako řetězec Dim Dim Number1 Jak 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
Nyní spustíme kód a uvidíme výsledek.
Vzhledem k tomu, že hodnota číslo 1 je 105, což je větší hodnota než číslo 2 ze 100, dostali jsme výsledek jako „číslo 1 je větší než číslo 2“. Vzhledem k tomu, že výraz má hodnotu PRAVDA, vrátila tento výsledek podmínka IIF.
Příklad č. 2 - IF vs IIF
Určitě vás zajímá, jaký je rozdíl mezi IF a IIF. Ano, existuje rozdíl v kódování. Podívejte se například na podmínkový kód IF.
Kód:
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
Nejprve pomocí IF jsme aplikovali logický test.
Pokud Number1> Number2 Then
Pokud je logický test pravdivý, použili jsme výsledek.
MsgBox "Číslo 1 je větší než číslo 2"
Pokud je logický test nepravdivý, použili jsme různé výsledky.
MsgBox "Číslo 1 je menší než číslo 2"
Obě funkce vracejí stejný výsledek, ale s IIF můžeme kódovat pouze na jednom řádku, kde příkaz IF vyžaduje více řádků.
Příklad # 3 - VBA vnořený stav IIF
Stejně jako používáme vnořené IF k testování více podmínek podobně, můžeme také použít více IIF. Podívejte se na níže 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, „Third“, „Fail“)))) MsgBox FinalResult End Sub
Výše uvedená podmínka IIF testuje pět logických testů a odpovídajícím způsobem vrací výsledek.