eval (ez_write_tag ([[468,60], ”sourcedaddy_com-box-3”, ”ezslot_1”, 102, ”0”, ”0”])); Valitse tapauslauseke
MS-Excel / Yleinen muotoilu
Suoritetaan useita testejä If … -toiminnolla. ElseIf on kätevä tekniikka – se on VBA-työkalu, jota et tiedä usein. Se muuttuu kuitenkin nopeasti hankalaksi, kun tehtävien testien määrä kasvaa. Se on okei kahdessa tai kolmessa testissä, mutta kaikki muu tekee telogisen seuraamisen vaikeammaksi.
Näissä tilanteissa VBA: n Select Case -lauseke on parempi valinta. Ajatuksena on, että annat loogisen lausekkeen alussa ja luetat sitten sarjan mahdollisia tuloksia. Foreach mahdollista tulosta, jota kutsutaan tapaukseksi – annat yhden tai useamman VBA-lauseen suoritettavaksi, jos tapaus osoittautuu totta. Tässä syntaksi:
Select Case TestExpression Case FirstCaseList Case SecondCaseList <etc> Case Else End Select
TestExpression
Tämä lauseke arvioidaan rakenteen alussa. Se on palautettava arvo (looginen, numeerinen, merkkijono ja niin edelleen).
CaseList
Luettelo yhdestä tai useammasta mahdollisesta TestExpression-tuloksesta. Nämä tulokset ovat arvoja tai lausekkeita eroteltuina pilkuilla. VBA tutkii kunkin elementin luettelosta nähdäksesi, vastaako yksi TestExpression-lauseketta. Lausekkeilla voi olla jokin seuraavista muodoista:ExpressionExpression To ExpressionIs LogicalOperator ExpressionVastaanottaja-avainsana määrittelee arvon (esimerkiksi 1-10). . Is-avainsana määrittelee avoimen arvoalueen (esimerkiksi Is > = 100).
Lausunnot
Nämä ovat lauseet, joita VBA suorittaa, jos jokin osa liittyvä CaseList vastaa TestExpressionia. VBA suorittaa valinnaiset ElseStatements-elementit, jos mikään CaseList ei sisällä TestExpression-vastaavuutta.
Huomaa: Jos useampi kuin yksi CaseList sisältää vastaavan elementin TestExpression, VBA suorittaa vain CaseListiin liittyvät lausekkeet, jotka näkyvät ensin Valitse tapaus -rakenteessa.
Luettelossa näkyy, kuinka valitset Tapaus-sovelluksen käsittelemään Taajuus-argumenttiongelmaa.
Menettely, jota käytetään Valitse tapaus testataksesi useita arvoja A Select Case -esimerkki: Testitulosten muuntaminen kirjainpisteiksi
Jotta saisit paremman tunnelman Select Case -lausekkeesta, katsotaanpa toinen esimerkki, joka esittelee paremmin tämän tehokkaan ainutlaatuiset kyvyt rakenne. Oletetaan, että haluat kirjoittaa menettelyn, joka muuntaa raakan testituloksen kirjainpisteeksi seuraavan taulukon mukaisesti:
Raakapisteet | Kirjainkoko |
90 ja yli | A |
80-89 | B |
70-79 | C |
60-69 | D |
Alle 60 | F |
Luettelossa näkyy LetterGrade-menettely, joka käyttää muunnosta Select Case -lauseketta.
rawScore-argumentti on kokonaisluku välillä 0-100. Select Case -rakenne tarkistaa ensin, onko rawScore negatiivinen, ja jos on, funktio palauttaa virheilmoituksen. Seuraava tapauslauseke tarkistaa, onko pisteet alle 60, ja toiminto palauttaa kirjainluokan ”F”, jos se on. Seuraava tapauslauseke etsii pistemäärän, joka on alle 70. Jos pääsemme niin pitkälle, tiedämme jo (edellisen tapauslausunnon ansiosta), että pisteet ovat vähintään 60. Siksi tämä tapaus todella tarkistaa, onko pisteitä välillä 60 ja 70 (mukaan lukien 60, mutta ei 70). Jos näin on, kirjain ”D” palautetaan. Loput tapaustapauksista etenevät samalla tavalla. Tapaus tarkastaa yli 100 pistemäärän ja palauttaa toisen virhesanoman, jos se on.
Toinen esimerkki: RGB-toiminnon kesyttäminen
Voit käyttää RGB (punainen, vihreä, sininen) VBA-toimintoa milloin tahansa. määritä ominaisuuden väri. Jokainen kolmesta nimetystä argumentista (punainen, vihreä ja sininen) ovat kokonaislukuja välillä 0 ja 255, jotka määräävät kuinka paljon kutakin komponenttiväriä sekoitetaan lopulliseen väriin. Esimerkiksi punaisessa komponentissa 0 tarkoittaa, että punaista ei ole ja 255 tarkoittaa, että puhdasta punaista on läsnä. Jos kaikki kolme arvoa ovat samat, saat harmaan sävyn.
Tässä on joitain esimerkkiarvoja jokaiselle komponentille, joka tuottaa yhteisiä värejä:
Punainen | Sininen | Vihreä | Tulos |
0 | 0 | 0 | musta |
0 | 0 | 255 | sininen |
0 | 255 | 0 | vihreä |
0 | 255 | 255 | syaani |
255 | 0 | 0 | Punainen |
255 | 0 | 255 | Margenta |
255 | 255 | 0 | Keltainen |
255 | 255 | 255 | Valkoinen |
Sen sijaan, että muistaisit nämä yhdistelmät, anna VBA: n ja Select Case -työkalun tehdä värien valinnasta helpompaa. näyttää VBAColor-toiminnon, jonka avulla voit käyttää nimiä (esimerkiksi ”punainen” tai ”sininen”) salaisen tunnoton sijaan er -yhdistelmillä asetetaan 16 yleisintä väriä.
Toiminto, joka hyväksyy värinimen merkkijonoksi ja palauttaa vastaavan RGB-arvon
VBAColor vie yhden argumentin colorName, joka on värin nimi haluat työskennellä. Huomaa, kuinka Select Case -lauseke hieroo argumenttia virheiden välttämiseksi:
Select Case LCase(Trim(colorName))
Leikkaustoiminto poistaa kaikki vieraat tilat alussa ja argumentin loppu, ja LCase-toiminto muuntaa colorName pieniksi. Tämä varmistaa, että funktiossa ei erotella isoja ja pieniä kirjaimia, mikä tarkoittaa, että sillä ei ole väliä lähetätkö mustan, MUSTAN vai Mustan: Toiminto toimii edelleen.
Loput toiminnosta käyttävät Case-lauseita tarkistaakseen useita värinimiä ja palauta sopiva RGB-arvo. Voit käyttää ColorTester-menettelyä antamaan VBAColoralle pyörteen. Tämä menettely vain muotoilee valitun laskentataulukon solun fonttivärin.
Huomaa: VBA määrittelee myös kahdeksan värivakiota, jotka voit käyttää, kun tarvitset vain perusvärit: vbBlack, vbBlue, vbCyan, vbGreen, vbMagenta, vbRed, vbWhite ja vbYellow.