Excel VBA: Príkaz If na základe hodnoty bunky (2 praktické príklady)

  • Zdieľajte To
Hugh West

V tomto článku vám ukážem, ako môžete použiť Príkaz If na stránke VBA v programe Excel na základe hodnoty bunky.

Excel VBA: Príkaz If na základe hodnoty bunky (rýchle zobrazenie)

 Sub If_Statement_Based_On_a_Single_Cell() If Range("C3").Value>= 40 Then Range("D3").Value = "Passed" Else Range("D3").Value = "Failed" End If End Sub 

Stiahnite si cvičebnicu

Stiahnite si tento cvičebný zošit, aby ste si počas čítania tohto článku precvičili svoje zručnosti.

Príkaz If na základe hodnoty bunky.xlsm

Príkaz If na základe hodnoty bunky v programe Excel VBA

Tu máme pracovný hárok, ktorý obsahuje mená a značky niektorých študentov školy pri skúške.

Naším cieľom je naučiť sa používať Príkaz If v programe Excel VBA na základe hodnoty bunky z tohto súboru údajov.

1. Príkaz If na základe hodnoty jednej bunky v programe Excel VBA

Najprv sa naučíme používať príkaz If na základe hodnoty jednej bunky.

Skúsme napríklad zistiť, či Natália Austinová na skúške uspela alebo nie, teda či známka v bunke C3 je väčšia ako 40 alebo nie.

Stĺpec D obsahuje výsledok študentov. To znamená, že ak bunka C3 obsahuje známku vyššiu ako 40, bunka D3 bude obsahovať "Prešiel" . Inak bude obsahovať "Nepodarilo sa" .

Použijeme VBA Rozsah vytvoriť tento objekt Príkaz If na základe hodnoty bunky.

Stránka VBA kód pre tento účel bude:

⧭ Kód VBA:

 Sub If_Statement_Based_On_a_Single_Cell() If Range("C3").Value>= 40 Then Range("D3").Value = "Passed" Else Range("D3").Value = "Failed" End If End Sub 

⧭ Výstup:

Spustite kód z Spustiť podponuku / UserForm nástroj v VBA panel nástrojov.

Vytvorí bunky D3 obsahujú "Nepodarilo sa" , ako značka v bunke C3 je menšia ako 40 ( 32 ).

2. Príkaz If založený na hodnotách rozsahu buniek v programe Excel VBA

Môžete tiež použiť Príkaz If na základe hodnôt rozsahu buniek v VBA . Môžete použiť for-loop na tento účel.

Napríklad tu môžeme zistiť výsledok všetkých študentov pomocou jediného kódu. Budeme iterovať cez for-loop ktorý skontroluje všetky bunky v rozsahu C3:C12 a vrátiť zodpovedajúci výsledok, "Prešiel" alebo "Nepodarilo sa" .

Stránka VBA kód pre tento účel bude:

⧭ Kód VBA:

 Sub If_Statement_Based_On_a_Range_of_Cells() For i = 1 To Range("C3:C12").Rows.Count If Range("C3:C12").Cells(i, 1).Value>= 40 Then Range("D3:D12").Cells(i, 1).Value = "Passed" Else Range("D3:D12").Cells(i, 1).Value = "Failed" End If Next i End Sub 

⧭ Výstup:

Spustite kód z Spustiť podponuku / UserForm nástroj v VBA panel nástrojov. Vráti sa "Prešiel" pre značky, ktoré sú väčšie ako 40 a "Neúspešný" pre tie, ktoré sú menej ako n 40 .

Čo si treba zapamätať

Tu som ukázal Príkaz If s jednou podmienkou. Ak však chcete, môžete použiť viacero podmienok v rámci Príkaz If .

Ak používate ALEBO zadajte viacero podmienok, spojte ich pomocou ALEBO .

A ak používate A zadajte viacero podmienok, spojte ich pomocou A .

Napríklad, ak chcete skontrolovať, či značka v bunke B3 je väčšia ako 40 a menej ako 50 alebo nie, použite:

 Ak (Range("C3").Value> 40 alebo Range("C3").Value <50) potom 

Hugh West je veľmi skúsený tréner a analytik Excelu s viac ako 10-ročnými skúsenosťami v tomto odvetví. Má bakalársky titul v odbore účtovníctvo a financie a magisterský titul v odbore Business Administration. Hugh má vášeň pre vyučovanie a vyvinul jedinečný vyučovací prístup, ktorý sa dá ľahko sledovať a pochopiť. Jeho odborné znalosti Excelu pomohli tisíckam študentov a profesionálov na celom svete zlepšiť svoje zručnosti a vyniknúť vo svojej kariére. Hugh sa prostredníctvom svojho blogu delí o svoje znalosti so svetom a ponúka bezplatné výukové programy Excelu a online školenia, ktoré jednotlivcom a firmám pomôžu naplno využiť ich potenciál.