eval (ez_write_tag ([[468,60], «sourcedaddy_com-box-3», «ezslot_1», 102, «0», «0»])); Bruk Select Case Statement
MS-Excel / Generell formatering
Utføre flere tester med If … ElseIf er en praktisk teknikk – det er et VBA-verktøy du ofte vil nå. Imidlertid blir det raskt uhåndterlig ettersom antall tester du trenger å gjøre blir større. Det er greit for to eller tre tester, men noe mer enn det gjør logikken vanskeligere å følge.
For disse situasjonene er VBAs Select Case-uttalelse et bedre valg. Tanken er at du gir et logisk uttrykk i begynnelsen og deretter lister opp en serie med mulige resultater. For hvert mulig resultat, kalt en sak, oppgir du en eller flere VBA-uttalelser for å utføre skal saken vise seg å være sant. Her er syntaksen:
Select Case TestExpression Case FirstCaseList Case SecondCaseList <etc> Case Else End Select
Testuttrykk
Dette uttrykket blir evaluert i begynnelsen av strukturen. Det må returnere en verdi (logisk, numerisk, streng osv.).
CaseList
En liste over ett eller flere mulige resultater for TestExpression. Disse resultatene er verdier eller uttrykk atskilt med komma.VBA undersøker hvert element i liste for å se om en samsvarer med TestExpression. Uttrykkene kan ha noen av følgende former:ExpressionExpression To ExpressionIs LogicalOperator ExpressionTo-nøkkelordet definerer en rekke verdier (for eksempel 1 til 10) . Is-nøkkelordet definerer et åpent verdiområde (for eksempel er > = 100).
Uttalelser
Dette er utsagnene VBA kjører hvis noen del av den tilknyttede CaseList samsvarer med TestExpression. VBA kjører valgfrie ElseStatements hvis ingen CaseList inneholder et samsvar for TestExpression.
Merk: Hvis mer enn en CaseList inneholder et element som samsvarer TestExpression, VBA kjører kun utsagnene som er knyttet til CaseList som vises først i Select Case-strukturen.
Oppføringen viser hvordan du vil bruke Select Case til å håndtere problemet med Frequency-argumentet.
En prosedyre som bruker Velg sak for å teste flere verdier A Velg sak Eksempel: Konvertere testresultater til bokstavkarakterer
For å hjelpe deg med å få en bedre følelse av Select Case-setningen, la oss ta en titt på et annet eksempel som bedre viser de unike talentene til denne kraftige struktur. Anta at du vil skrive en prosedyre som konverterer en rå testpoeng til en bokstavkarakter i henhold til følgende tabell:
Raw Score | Letter Grade |
90 og over | A |
Mellom 80 og 89 | B |
Mellom 70 og 79 | C |
Mellom 60 og 69 | D |
Mindre enn 60 | F |
Oppføring viser LetterGrade-prosedyren, som bruker en Select Case-setning for å gjøre konverteringen.
RawScore-argumentet er et heltall mellom 0 og 100. Select Case-strukturen kontrollerer først om rawScore er negativ, og i så fall returnerer funksjonen en feilmelding. Neste saksuttalelse sjekker om poengsummen er mindre enn 60, og funksjonen returnerer bokstavkarakteren «F» hvis den er. Neste saksuttalelse ser etter en poengsum som er mindre enn 70. Hvis vi kommer så langt, vet vi allerede (takket være den forrige saksuttalelsen) at poengsummen er minst 60. Derfor sjekker denne saken virkelig om skåren mellom 60 og 70 (inkludert 60, men ikke inkludert 70). I så fall returneres bokstavkarakteren «D». Resten av saksuttalelsene går på samme måte. Saken Els sjekker for en poengsum større enn 100 og returnerer en annen feilmelding hvis den er det.
Et annet eksempel: Taming av RGB-funksjonen
Du kan bruke RGB (rød, grønn, blå) VBA-funksjon når som helst du trenger angi en farge for en eiendom. Hver av de tre navngitte argumentene (rød, grønn og blå) er heltall mellom 0 og 255 som bestemmer hvor mye av hver komponentfarge blandes inn i den endelige fargen. I den røde komponenten, for eksempel, betyr 0 at ingen rød er tilstede og 255 betyr at ren rød er til stede. Hvis alle treverdiene er de samme, får du en grå nyanse.
Her er noen eksempler på verdier for hver komponent som produserer vanlige farger:
Rødt | Blå | Grønt | Resultat |
0 | 0 | 0 | Svart |
0 | 0 | 255 | Blå |
0 | 255 | 0 | Grønn |
0 | 255 | 255 | Cyan |
255 | 0 | 0 | Rød |
255 | 0 | 255 | Margenta |
255 | 255 | 0 | Gul |
255 | 255 | 255 | Hvit |
I stedet for å huske disse kombinasjonene, la oss imidlertid sette VBA og Select Case for å gjøre det enklere å velge farger. viser VBAColor-funksjonen, som lar deg bruke navn (for eksempel «rød» eller «blå») i stedet for kryptisk nummen er kombinasjoner for å angi 16 av de vanligste fargene.
En funksjon som godtar et fargenavn som en streng og returnerer tilsvarende RGB-verdi
VBAColor tar et enkelt argument, colorName, som er navnet på fargen du ønsker å jobbe med. Legg merke til hvordan Select Case-setningen masserer argumentet for å forhindre feil:
Select Case LCase(Trim(colorName))
Trim-funksjonen fjerner eventuelle fremmede mellomrom i begynnelsen og slutten av argumentet, og LCase-funksjonen konverterer colorName til små bokstaver. Dette sikrer at funksjonen ikke er mellom store og små bokstaver, noe som betyr at det ikke betyr noe om du sender svart, SVART eller SVART: Funksjonen vil fortsatt fungere. forskjellige fargenavn og returnerer passende RGB-verdi. Du kan bruke ColorTester-prosedyren for å gi VBAColora-hvirvel. Denne prosedyren formaterer bare skriftfargen på den valgte regnearkcellen. du kan bruke når du bare trenger grunnleggende farger: vbBlack, vbBlue, vbCyan, vbGreen, vbMagenta, vbRed, vbWhite og vbYellow.