eval (ez_write_tag ([[468,60], “sourcedaddy_com-box-3”, “ezslot_1”, 102, “0”, “0”])); a Select Case Statement
MS-Excel / Általános formázás
Több teszt elvégzése az If használatával … Az ElseIf egy praktikus technika – ez gyakran a “VBA eszköz”. Azonban gyorsan nehézkessé válik, mivel az elvégzendő tesztek száma növekszik. Két vagy három teszt esetén rendben van, de ettől függetlenül a telogika követése nehezebb.
Ezekben a helyzetekben a VBA Select Case utasítás jobb választás. Az ötlet az, hogy az elején adjon meg egy logikai kifejezést, majd sorolja fel a lehetséges eredmények sorozatát. Foreach lehetséges eredmény – úgynevezett eset – megad egy vagy több VBA utasítást a végrehajtáshoz, ha az eset igaznak bizonyul. Itt van a szintaxis:
Select Case TestExpression Case FirstCaseList Case SecondCaseList <etc> Case Else End Select
TestExpression
Ezt a kifejezést a szerkezet elején értékelik. vissza kell adnia egy értéket (logikai, numerikus, karakterláncot és így tovább).
CaseList
A TestExpression egy vagy több lehetséges eredményének felsorolása. Ezek az eredmények vesszőkkel elválasztott értékek vagy kifejezések. A VBA megvizsgálja a listát, hogy lássa, megfelel-e valamelyik a TestExpressionnak. A kifejezések a következő formák bármelyikét ölthetik:ExpressionExpression To ExpressionIs LogicalOperator ExpressionA To kulcsszó értéktartományt határoz meg (például 1 és 10 között). . Az Is kulcsszó egy nyílt végű értéktartományt határoz meg (például Is > = 100).
Állítások
Ezek a VBA utasítások futnak, ha a a társított CaseList egyezik a TestExpressionval. A VBA futtatja az opcionális ElseStatements-t, ha egyetlen CaseList sem tartalmaz egyezést a TestExpressionhoz. a TestExpression, VBA futtatja a CaseList-hez társított utasításokat, amelyek elsőként jelennek meg az Eset kiválasztása struktúrában.A felsorolás megmutatja, hogyan használná a Kiválasztott esetet a Frekvencia argumentum problémájának kezelésére.
Eljárás Válasszon esetet több érték teszteléséhez Válasszon egy esetet: Teszt pontszámok konvertálása betűs osztályokká
Annak érdekében, hogy jobban megértse az Eset kiválasztása utasítást, vessünk egy pillantást egy másik példára, amely jobban bemutatja ennek a nagy teljesítménynek az egyedi tehetségét szerkezet. Tegyük fel, hogy olyan eljárást szeretne írni, amely a nyers teszt pontszámot betűs osztályzattá alakítja a következő táblázat szerint:
Nyers pontszám Betűs osztályzat 90 és több A 80 és 89 között B 70 és 79 között C 60 és 69 között D Kevesebb mint 60 F A lista a LetterGrade eljárást mutatja, amely az Eset kiválasztása utasítással hajtja végre az átalakítást.
A rawScore argumentum egész szám 0 és 100 között. Az Eset kiválasztása struktúra először ellenőrzi, hogy a rawScore negatív-e, és ha igen, akkor a függvény hibás üzenetet ad vissza. A következő Esettanulmány megvizsgálja, hogy a pontszám kisebb-e, mint 60, és a függvény visszaadja az “F” betűfokozatot, ha igen. A következő eset-kimutatás 70-nél kisebb pontszámot keres. Ha idáig eljutunk, már tudjuk (az előző eset-nyilatkozatnak köszönhetően), hogy a pontszám legalább 60. Ezért ez az eset valóban azt ellenőrzi, hogy a pontszám 60 és 70 között (köztük 60, de 70 nélkül). Ha igen, akkor a “D” betűfokozat visszakerül. Az esetnyilatkozatok többi része ugyanúgy jár el. A Case Elsech ellenőrzi a 100-nál nagyobb pontszámot, és újabb hibaüzenetet küld, ha van.
Egy másik példa: Az RGB funkció megszelídítése
Az RGB (piros, zöld, kék) VBA funkciót bármikor használhatja adjon meg egy tulajdonság színét. A három megnevezett argumentum (vörös, zöld és kék) 0 és 255 közötti egész szám, amely meghatározza, hogy az egyes komponensek színének mennyi része keveredik a végső színbe. A piros komponensben például 0 azt jelenti, hogy nincs piros, 255 pedig azt, hogy tiszta vörös van jelen. Ha az összes érték megegyezik, akkor egy szürke árnyalatot kap.
Íme néhány mintaérték minden egyes összetevő számára, amely közös színeket eredményez:
Piros Kék Zöld Eredmény 0 0 0 fekete 0 0 255 kék 0 255 0 zöld 0 255 255 cián 255 0 0 Piros 255 0 255 Margenta 255 255 0 Sárga 255 255 255 Fehér Azonban ahelyett, hogy megjegyezné ezeket a kombinációkat, tegye a VBA és a Select Case dolgokat a színek kiválasztásának megkönnyítése érdekében. a VBAColor függvényt mutatja, amely neveket (például “piros” vagy “kék”) használ, nem pedig rejtélyes zsibbadást er kombinációk a leggyakoribb színek 16 beállításához.
Egy olyan funkció, amely elfogadja a színnevet karakterláncként és visszaadja a megfelelő RGB értéket
A VBAColor egyetlen argumentumot, colorName-et vesz fel, amely a szín neve dolgozni akar. Figyelje meg, hogy a Select Case utasítás miként masszírozza az argumentumot a hibák elkerülése érdekében:
Select Case LCase(Trim(colorName))
A Trim funkció eltávolítja az idegen helyeket az elején és az argumentum vége, az LCase függvény pedig a colorName-et kisbetűvé alakítja. Ez biztosítja, hogy a függvény ne legyen különbség a kis- és nagybetűk között, ami azt jelenti, hogy nem számít, hogy fekete, FEKETE vagy FEKETET küld-e: A funkció továbbra is működni fog.
A függvény többi része Case-utasításokat használ a különféle színnevek és visszaküldi a megfelelő RGB értéket. A ColorTester eljárással megadhatja a VBAColora forgatagát. Ez az eljárás csak az éppen kijelölt munkalap cellájának betűszínét formázza. akkor használhatja, amikor csak az alapszínekre van szüksége: vbBlack, vbBlue, vbCyan, vbGreen, vbMagenta, vbRed, vbWhite és vbYellow.