Jak používat If Else Statement ve VBA? (s příklady)

Prohlášení Excel VBA IF Else

V listu není žádný příkaz IF Else a lze jej použít pouze v kódu VBA, při práci ve VBA můžeme poskytnout podmínku, kterou je příkaz If podmínka a pokud je splněna určitá sada instrukcí, pak se provede a pokud podmínka selže v instrukci, pak je proveden příkaz else.

VBA se neliší, pokud jde o logické testy. Funguje stejně jako v běžných pracovních listech. Ze všech logických funkcí je funkce „IF“ většinou používána ze šarže. Pomocí IF můžeme provést logický test a dospět k rozhodnutím, pokud je logický test spokojen, a také přijít alternativní rozhodnutí, pokud logický test není spokojen.

Níže je uvedena syntaxe podmínky IF Else.

IF Then If Logical Test is TRUE Else If the Logical Test is FALSE End IF

Co je prohlášení VBA IF Then Else?

Jakmile je zadaný logický test FALSE, potřebujeme k provedení jako součást kódu nějakou alternativní úlohu. „IF ELSE“ tedy znamená, že pokud je logický test FALSE, co dalšího je třeba udělat.

Abychom lépe porozuměli níže uvedenému příkladu, poskytli jsme výsledek jako „10 je větší“ pouze v případě, že logický test má hodnotu PRAVDA. Přesto v logickém výsledku FALSE můžeme dodat alternativní výsledek jako „10 je menší“.

Jakmile jsou tedy dodány logické testy a do dalšího řádku zapsán kód PRAVÉHO dílu, zadejte slovo „JINÉ“.

ELSE znamená, že pokud logický test není TRUE, potřebujeme výsledek, protože „10 je menší“.

Kód:

Sub IF_Else_Example1 () Pokud 10> 11 Pak MsgBox "10 je větší" Else MsgBox "10 je menší" End If End Sub

Náš kód nyní poskytuje alespoň jeden z výše uvedených výsledků. Spusťte kód a podívejte se na výsledek.

Jelikož jsme dodali alternativní výsledek, pokud je logický test NEPRAVDA, zobrazil alternativní výsledek jako „10 je menší“, protože 10 je menší než jiné číslo 11.

Příklad

Podívejte se například na níže uvedená data.

S těmito údaji musíme dospět ke stavu založenému na „ceně“ každého produktu. Níže jsou uvedena kritéria pro dosažení stavu.

Pokud je nákladová cena> 50, měl by být stav „ Drahý “, jinak by měl být stav „ Ne drahý “.

Zde musíme otestovat nákladovou cenu, tj. Logicky otestovat, zda je nákladová cena> 50 nebo ne. Pokud je logický test PRAVDA, tj. Cena nákladů je více než 50, potřebujeme stav „Drahý“, a pokud je logický test FALSE, tj. Cena nákladů je nižší než 50, potřebujeme alternativní výsledek jako "Není drahý."

Dobře, napíšeme kód hned. Před tím zkopírujte a vložte výše uvedenou tabulku do listu aplikace Excel.

Krok 1: Spusťte podproces.

Sub IF_ELSE_Example2 () End Sub

Krok 2: Deklarujte proměnnou jako celočíselný datový typ.

Dim k As Integer

Krok 3: Vzhledem k tomu, že musíme otestovat více než jednu hodnotu buňky, musíme použít FOR VBA LOOP k procházení mezi buňkami a použít logiku pro všechny buňky.

Musíme uplatnit logické testy od 2. řádku 8 tého řádku, takže start FOR LOOP 2 až 8.

Kód:

Pro k = 2 až 8 Další k

Krok 4: Uvnitř této smyčky musíme provést logický test. Takže otevřete příkaz IF a vyberte první buňku pomocí vlastnosti CELLS.

Kód:

Pokud buňky (k, 2). Hodnota> 50 Pak

Zde buňky (k, 2) znamenají řádek (hodnota k) a sloupec 2.

Krok 5: Pokud je tato hodnota buňky> 50, potřebujeme výsledek jako „Drahý“ v další buňce sloupce. Takže kód bude -

Kód:

Buňky (k, 3) .Value = "Drahé"

Krok 6: Pokud test není TRUE, potřebujeme výsledky příkazu ELSE, tj. „Není drahé“.

Kód:

Sub IF_ELSE_Example2 () Dim k As Integer For k = 2 to 8 If Cells (k, 2) .Value> 50 Then Cells (k, 3) .Value = "Expensive" Else Cells (k, 3) .Value = "Not Drahé „Konec, pokud další k Konec Sub

Tento kód projde smyčkou od 2. do 8. řady, kde otestuje čísla a dospěje k výsledku na základě nákladové ceny.

Takto můžeme použít If-Else k dosažení alternativních výsledků.

Věci k zapamatování

  • Příkaz else je pro FALSE logický test.
  • Pokud chcete v aplikaci Excel použít více než dva logické testy, musíme použít příkaz ELSE IF.
  • V případě provedení úlohy pro více než jednu buňku musíme použít smyčky.
  • Pokud příkaz Else může testovat pouze jeden logický test.

Zajímavé články...