Excel VBA -kotelo
VBA-kytkennässä, kun meidän on loogisesti tarkistettava tai analysoitava ehto ja suoritettava eri koodirivit saman perusteella, käytämme IF-Else -ehtoista lauseketta. Samoin on vielä yksi lausekytkintapaus, joka tunnetaan laajemmin nimellä Select Case -lauseke, joka voi tarkistaa tai analysoida useita loogisia olosuhteita ja suorittaa koodirivit niiden perusteella. Kun sinulla on kolme tai enemmän loogisia olosuhteita tarkistettavaksi, on suositeltavaa käyttää Valitse tapaus tai Vaihda tapaus tavanomaisen IF-Else-käskyn sijasta. Koska se tekee VBA-koodista nopeamman ja ymmärrettävämmän IF-Else-lauseiden sijaan tällaisissa tapauksissa.
Vaihda tapaus / Valitse tapaus
Vaihda tapaus tai Valitse tapaus VBA: ssa toimii samoilla linjoilla kuin IF-Else -lausekkeet. Se tarkistaa useita loogisia / ehdollisia lausekkeita eri arvoilla (tapaukset). Heti kun jokin tapauksista vastaa ehtoa (tulee totta annetulle ehdolle), järjestelmä suorittaa kyseisen tapauksen ja loput muut tapaukset jätetään huomioimatta toteuttamiseksi. Jos on olemassa kaksi tapausta, jotka pätevät annettuun ehtoon, vain ensimmäinen toteutetaan etuoikeuslain mukaisesti.
Kytkentätapauksen / Valitse tapauksen syntaksi on seuraava:
Select Case
Case value_1
Code to Execute when Expression = value_1
Case value_2
Code to Execute when Expression = value_2
Case value_3
Code to Execute when Expression = value_3
.
.
.
Case value_n
Code to Execute when Expression = value_n
Case Else
Code to Execute when no case value meets the expression/logical test.
End Select
Missä,
Lauseke: Tämä on lauseke, jota halusimme tarkistaa tai analysoida käyttämällä erilaisia tapausarvoja.
arvo_1, arvo_2, arvo_3, … ovat loogisia ehtoja, jotka on tarkistettava annetulle lausekkeelle.
Kuinka käyttää vaihtotapauslauseketta Excel VBA: ssa?
Opimme käyttämään Switch Case -käskyä Excelissä käyttämällä VBA-koodia.
Voit ladata tämän VBA Switch Case Excel -mallin täältä - VBA Switch Case Excel TemplateVBA-kytkinkotelo - esimerkki # 1
Tarkistamme, onko annettu luku alle 100 vai yli 100. Tätä varten noudata seuraavia vaiheita:
Vaihe 1: Aseta uusi moduuli Visual Basic Editoriin (VBE). Napsauta Lisää välilehti> valitse moduuli.
Vaihe 2: Määritä lisättyyn moduuliin uusi alaprosessori, joka voi pitää makroasi.
Koodi:
Sub switch_case_example1 () End Sub
Vaihe 3: Määritä uusi muuttuja nimeltä usrInpt, joka voi pitää käyttäjän arvon. Luo syöttöruutu VBA InputBox -toiminnolla, joka vie käyttäjän arvot muuttujan usrInpt kautta.
Koodi:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Anna arvo") End Sub
Vaihe 4: Käytä Select Case -käskyä ja anna käyttäjän tarjoama arvo muuttujan usrInpt kautta. Tämä on lauseke, joka meidän on tarkistettava loogisilla ehdoilla.
Koodi:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Anna arvo") Valitse Case usrInpt End Sub
Vaihe 5: Kirjoita ensimmäinen tarkistettava looginen testi Case-lauseen alle seuraavasti.
Koodi:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Anna arvo") Valitse Case usrInpt Case on <100 End Sub
Vaihe 6: Lisää MsgBox-toiminto tulostesanoman lisäämiseen, jos Case Is <100 on totta.
Koodi:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Anna arvo") Valitse Case usrInpt Case on <100 MsgBox "Annettu numero on alle 100" End Sub
Vaihe 7: Nyt meidän on annettava suoritettava käsky, kun usrInpt- arvo on suurempi kuin 100. Lisää tämä tapaus ja MsgBox.
Koodi:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Anna arvo") Valitse Case usrInpt Case Is 100 MsgBox "Annettu luku on suurempi kuin 100" End Sub
Vaihe 8: Entä jos käyttäjän antama arvo on täsmälleen 100? Sitä ei ole lisätty tapaukseen. Lisäämme sen, joka antaa käyttäjälle viestin, että syöttämäsi arvo on 100.
Koodi:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Anna arvo") Valitse Case usrInpt Case Is 100 MsgBox "Annettu luku on suurempi kuin 100" Case Is = 100 MsgBox "Annettu numero on 100" End Sub
Vaihe 9: Meidän on lopetettava Select Case -lausunto. Käytä End Select -painiketta lopettaaksesi luodun silmukan.
Koodi:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Anna arvo") Valitse Case usrInpt Case Is 100 MsgBox "Annettu luku on suurempi kuin 100" Case Is = 100 MsgBox "Annettu numero on 100" End Valitse End Sub
Vaihe 10: Suorita nyt tämä koodi napsauttamalla Suorita-painiketta tai F5. Näkyviin tulee uusi ponnahdusikkuna, jossa pyydetään arvon tarkistamista. Annan arvon 110 ja painan syöttöruudun OK-painiketta. Koska kirjoittamasi numero on yli 100, heti kun napsautin OK, uusi viesti ilmestyy näytölleni sanomalla: "Annettu numero on suurempi kuin 100".
VBA-kytkinlaukku - esimerkki 2
Oletetaan, että haluamme kaapata opiskelijoiden arvosanat pisteiden perusteella. Katso alla olevat vaiheet kuinka voimme saavuttaa tämän.
Vaihe 1: Määritä uusi alamenettely nimeltä switch_case_example2 .
Koodi:
Sub switch_case_example2 () End Sub
Vaihe 2: Määrittele kaksi uutta muuttujaa - merkit kokonaislukuna ja arvosanat merkkijonona käyttämällä Dim-käskyä luodussa alaproseduurissa.
Koodi:
Sub switch_case_example2 () Himmennys merkitään kokonaislukuna
Vaihe 3: Käytä VBA InputBox-toimintoa, jonka kautta käyttäjä voi syöttää muuttujien merkintöjen arvon.
Koodi:
Sub switch_case_example2 () himmentävät merkinnät kokonaisuutena himmentävät merkinnät merkkijonona = InputBox ("Anna merkinnät") End Sub
Vaihe 4: Käytä Select Case -käskyä ja anna muuttujamerkit tarkistettavana lausekkeena.
Koodi:
Sub switch_case_example2 () himmentävät merkinnät kokonaisuutena himmentävät merkinnät merkkijonona = InputBox ("Kirjoita merkinnät") Valitse tapausmerkit End Sub
Koska haluamme antaa arvosanat opiskelijoille heidän antamiensa pisteiden perusteella, meidän on ensin määriteltävä arvosanat.
Vaihe 5: Käytä tapauslauseketta tarkistaaksesi, ovatko merkinnät alle 35. Jos näin on, määritä muuttuville luokille arvo “F”.
Koodi:
Sub switch_case_example2 () himmentävät merkinnät kokonaisena kokonaisuutena himmentävät merkinnät merkkijonona = InputBox ("Kirjoita merkinnät") Valitse tapausmerkit Case on <35 luokkaa = "F" End Sub
Vaihe 6: Jos merkinnät ovat välillä 35 - 45, määritä muuttuville luokille arvo D: nä.
Koodi:
Sub switch_case_example2 () himmentävät merkinnät kokonaisuutena himmentävät arvosanat merkkijonoina = InputBox ("Anna merkinnät") Valitse tapausmerkit Tapaus on <35 luokkaa = "F" tapaus 35 - 45 luokkaa = "D" Loppu alaosa
Vaihe 7: Jos syötetyt merkinnät ovat välillä 46 - 55, arvolle “C” pitäisi antaa muuttuva arvosana.
Koodi:
Sub switch_case_example2 () himmentävät merkinnät kokonaisuutena himmentävät arvosanat merkkijonoina = InputBox ("Anna merkinnät") Valitse tapausmerkit Case on <35 astetta = "F" tapaus 35 - 45 luokkaa = "D" tapaus 46 - 55 luokka = "C" loppuosa
Vaihe 8: Kun merkit ovat välillä 56-65, muuttuville luokille annettavan arvon tulisi olla "B".
Koodi:
Sub switch_case_example2 () himmentävät merkinnät kokonaisuutena himmentävät arvosanat merkkijonoina = InputBox ("Anna merkinnät") Valitse tapausmerkit Case on <35 astetta = "F" tapaus 35 - 45 luokkaa = "D" tapaus 46 - 55 luokka = "C" -tapaus 56 - 65 luokkaa = "B" End Sub
Vaihe 9: Jos arvosanat ovat välillä 66–75, arvosanan on oltava A.
Koodi:
Sub switch_case_example2 () himmentävät merkinnät kokonaisuutena himmentävät arvosanat merkkijonoina = InputBox ("Anna merkinnät") Valitse tapausmerkit Case on <35 astetta = "F" tapaus 35 - 45 luokkaa = "D" tapaus 46 - 55 luokka = "C" tapaus 56 - 65 luokkaa = "B" tapaus 66 - 75 luokka = "A" End Sub
Vaihe 10: Jos syötetyt merkinnät ovat yli 75, arvosanamuuttujalle tulisi antaa arvo "A +"
Koodi:
Sub switch_case_example2 () himmentävät merkinnät kokonaisena kokonaisuutena himmentävät merkinnät merkkijonona = InputBox ("Kirjoita merkinnät") Valitse tapausmerkit Case Is 75 grade = "A +" End Sub
Vaihe 11: Käytä End Valitse sulje Select Case -silmukka.
Koodi:
Sub switch_case_example2 () himmentävät merkinnät kokonaisena kokonaisuutena himmentävät merkinnät merkkijonona = InputBox ("Kirjoita merkinnät") Valitse tapausmerkit Case Is 75 grade = "A +" End Select End Sub
Vaihe 12: Nyt meidän on tarkistettava, mikä on arvosana, joka liittyy opiskelijan syöttämiin pisteisiin. Tämän saavuttamiseksi käytä MsgBox- toimintoa siten, että se merkitsee saavutetut arvosanat viestiruudun sisällä.
Koodi:
Sub switch_case_example2 () himmentävät merkinnät kokonaisuutena himmentävät arvosanat merkkijonoina = InputBox ("Kirjoita merkinnät") Valitse tapausmerkit Tapaus on 75 luokkaa = "A +" End Select MsgBox "Saatu luokka on:" & arvosanat End Sub
Vaihe 13: Suorita tämä koodi napsauttamalla F5- tai Suorita-painiketta ja näet VBA-syöttöruudun, joka pyytää merkkiarvoa. Annan merkinnät 72: ksi ja painan syöttöruudussa olevaa OK-painiketta. Heti kun osutin syöttöruudun sisällä olevaa OK-painiketta, saan viestiruudun, joka osoittaa annettuihin merkkeihin liittyvät arvosanat.
Näin voimme käyttää Vaihda / Valitse tapaus -lausetta VBA: n sisällä.
Muistettavat asiat
- Vaihtotapaus on oikeastaan synonyymi Select Case -käskylle VBA: ssa. Sitä on kutsuttu niin, koska tämän lausunnon avulla voimme vaihtaa eri lähtöjä samanaikaisesti.
- Tätä lausetta voidaan käyttää vaihtoehtona IF-Else-silmukalle aina, kun meillä on kolme tai useampia ehtoja tarkistettavaksi.
- On OK, jos et käytä ELSE-tapausta Select Case -käskyssä. Tässä tapauksessa sinun on kuitenkin varmistettava, että ainakin yksi ehto on tosi koko silmukan ajan.
Suositellut artikkelit
Tämä on opas VBA-kytkinkoteloon. Tässä keskustellaan siitä, kuinka kytkintapauslauseketta voidaan käyttää Excel VBA: ssa, sekä käytännön esimerkkejä ja ladattavaa Excel-mallia. Voit myös käydä läpi muiden ehdottamiemme artikkeleidemme -
- VBA-kokoelma (esimerkkejä)
- VBA IF -lausunnot | Excel-mallit
- Kuinka käyttää Excel VBA -lajittelutoimintoa?
- VBA while Loop (esimerkkejä Excel-mallilla)
- VBA Environ