Kaip VBA naudoti „If Else“ pareiškimą? (su pavyzdžiais)

„Excel VBA IF“ kita ataskaita

Darbalapyje nėra „ IF Else“ sakinio ir jis gali būti naudojamas tik VBA kode. Dirbdami VBA, mes galime pateikti sąlygą, kuri yra „If“ sąlygos sakinys, ir jei jis įvykdytas, tam tikras instrukcijų rinkinys tada vykdomas sąlyga nepavyksta instrukcijos, tada vykdomas kitas sakinys.

Kalbant apie loginius testus, VBA nesiskiria. Tai veikia taip pat, kaip ir įprastuose darbalapiuose. Iš visų loginių funkcijų „IF“ funkcija dažniausiai naudojama iš partijos. Naudodamiesi IF, galime atlikti loginį testą ir priimti sprendimus, jei loginis testas yra patenkintas, taip pat priimti alternatyvius sprendimus, jei loginis testas nėra patenkintas.

Žemiau pateikiama „IF Else“ sąlygos sintaksė.

IF Tada, jei loginis testas yra TIKRA KITA, jei loginis testas yra NETIESA Baigti IF

Kas yra VBA IF, tada kitas pareiškimas?

Kai pateiktas loginis testas yra NETIESA, mums reikia kitos alternatyvios užduoties, kurią atliktume kaip kodo dalį. Taigi „JEI KITA“ reiškia, kad jei loginis testas yra NETIESA, ką dar reikia padaryti.

Norėdami geriau suprasti žemiau pateiktą pavyzdį, mes pateikėme rezultatą, nes „10 yra didesnis“, tik jei loginis testas yra TIKRA. Vis dėlto loginiame FALSE rezultate mes galime pateikti alternatyvų rezultatą, nes „10 yra mažesnis“.

Taigi, kai bus pateikti loginiai testai ir kitoje eilutėje parašytas TRUE dalies kodas, įveskite žodį „ELSE“.

ELSE reiškia, kad jei loginis testas nėra TIESA, mums reikia rezultato, nes „10 yra mažesnis“.

Kodas:

IF_Else_Example1 () Jei 10> 11 Tada MsgBox "10 yra didesnė" Kita MsgBox "10 yra mažesnė" End If End End Sub

Dabar mūsų kodas suteikia bent vieną iš aukščiau nurodytų rezultatų. Vykdykite kodą ir pamatykite rezultatą.

Pateikėme alternatyvų rezultatą, jei loginis testas yra NETIESA, jis pateikė alternatyvų rezultatą kaip „10 yra mažesnis“, nes 10 yra mažesnis už kitą skaičių 11.

Pavyzdys

Pavyzdžiui, pažiūrėkite į toliau pateiktus duomenis.

Turėdami šiuos duomenis, turime pasiekti būseną pagal kiekvieno produkto „kainą“. Norėdami gauti būseną žemiau, yra kriterijai.

Jei savikaina yra> 50, būsena turėtų būti „ Brangi “ arba „ Nebrangi “.

Čia turime patikrinti savikainą, ty logiškai patikrinti, ar savikaina yra> 50, ar ne. Jei loginis testas yra TIESA, ty savikaina yra didesnė nei 50, mums reikia statuso „Brangus“, o jei loginis testas yra NETIESA, ty savikaina yra mažesnė nei 50, mums reikia alternatyvaus rezultato, "Nebrangus."

Gerai, dabar parašykime kodą. Prieš tai nukopijuokite ir įklijuokite aukščiau pateiktą lentelę į „Excel“ darbalapį.

1 veiksmas: pradėkite antrinę procedūrą.

Pogrupis IF_ELSE_Pavyzdys2 () Pabaiga

2 žingsnis: paskelbkite kintamąjį kaip sveikųjų duomenų tipą.

Dim k As Sveikasis skaičius

3 žingsnis: Kadangi turime išbandyti daugiau nei vienos langelio reikšmes, turime naudoti FOR VBA LOOP, kad galėtumėte pereiti per langelius ir pritaikyti logiką visoms ląstelėms.

Turime taikyti loginius testus nuo 2-osios iki 8 -osios eilutės, todėl pradėkite FOR LOOP nuo 2 iki 8.

Kodas:

K = 2–8 Kitas k

4 žingsnis: Vykdydami šią kilpą, turime atlikti loginį testą. Taigi atidarykite IF sakinį ir pasirinkite pirmąjį langelį naudodami CELLS ypatybę.

Kodas:

Jei ląstelės (k, 2). Vertė> 50 Tada

Cells (k, 2) reiškia eilutę (k reikšmę) ir 2 stulpelį.

5 žingsnis: Jei ši langelio vertė yra> 50, kitame stulpelio langelyje rezultatas reikalingas kaip „Brangus“. Taigi kodas bus -

Kodas:

Ląstelės (k, 3). Vertė = "brangus"

6 veiksmas: jei testas nėra TIESA, mums reikia ELSE teiginių rezultatų, ty „Nebrangu“.

Kodas:

IF_ELSE_Pavyzdys2 () Dimensija k kaip sveikoji k = 2–8, jei ląstelės (k, 2). Vertė> 50, tada ląstelės (k, 3). Vertė = "Brangi" kitos ląstelės (k, 3). Vertė = "Ne Brangus "Pabaiga, jei kitas k k Pabaiga

Šis kodas tęsis nuo 2 -osios iki 8-osios eilutės, bandydamas skaičius ir pasieks rezultatą pagal savikainą.

Taip galime naudoti „If-Else“, kad gautume alternatyvių rezultatų.

Ką reikia atsiminti

  • Kitas teiginys skirtas klaidingam loginiam testui.
  • Jei norite „Excel“ taikyti daugiau nei du loginius testus, turime naudoti teiginį ELSE IF.
  • Jei užduotis vykdoma daugiau nei vienoje langelyje, turime naudoti kilpas.
  • Jei „Else“ teiginys gali išbandyti tik vieną loginį testą.

Įdomios straipsniai...