eval (ez_write_tag ([[468,60], “sourcedaddy_com-box-3”, “ezslot_1”, 102, “0”, “0”])); Brug af Vælg sagserklæring
MS-Excel / generel formatering
Udførelse af flere tests med If … ElseIf er en praktisk teknik, det er et VBA-værktøj, du vil nå ganske ofte. Det bliver dog hurtigt uhåndterligt, da antallet af tests, du skal foretage, bliver større. Det er okay i to eller tre tests, men mere end det gør logikken sværere at følge.
I disse situationer er VBA’s Select Case-sætning et bedre valg. Ideen er, at du giver et logisk udtryk i starten og derefter viser en række mulige resultater. For hvert muligt resultat kaldet en sag – du giver en eller flere VBA-erklæringer, der skal udføres, hvis sagen viser sig at være sand. Her er syntaksen:
Select Case TestExpression Case FirstCaseList Case SecondCaseList <etc> Case Else End Select
Testekspression
Dette udtryk evalueres i begyndelsen af strukturen. Det skal returnere en værdi (logisk, numerisk, streng osv.).
CaseList
En liste over et eller flere mulige resultater til TestExpression. Disse resultater er værdier eller udtryk adskilt med kommaer. VBA undersøger hvert element i liste for at se, om man matcher TestExpression. Udtrykkene kan have en hvilken som helst af følgende former:ExpressionExpression To ExpressionIs LogicalOperator ExpressionTo-nøgleordet definerer en række værdier (for eksempel 1 til 10) . Is-nøgleordet definerer et åbent område af værdier (f.eks. Er > = 100).
Erklæringer
Dette er udsagnene, som VBA kører, hvis nogen del af den tilknyttede CaseList matcher TestExpression. VBA kører de valgfrie ElseStatements, hvis ingen CaseList indeholder et match til TestExpression.
Bemærk: Hvis mere end en CaseList indeholder et element, der matcher TestExpression, VBA kører kun de udsagn, der er knyttet til CaseList, der vises først i Select Case-strukturen.
Listing viser, hvordan du bruger Select Case til at håndtere problemet med frekvensargumentet.
En procedure, der bruger Vælg sag for at teste flere værdier A Vælg sag Eksempel: Konvertering af testresultater til bogstavkarakterer
For at hjælpe dig med at få en bedre fornemmelse af Select Case-sætningen, lad os se på et andet eksempel, der bedre viser de unikke talenter i denne magtfulde struktur. Antag, at du vil skrive en procedure, der konverterer en rå testscore til en bogstavkarakter i henhold til følgende tabel:
Raw Score | Letter Grade |
90 og derover | A |
Mellem 80 og 89 | B |
Mellem 70 og 79 | C |
Mellem 60 og 69 | D |
Mindre end 60 | F |
Liste viser LetterGrade-proceduren, der bruger en Select Case-sætning til at foretage konverteringen.
RawScore-argumentet er et heltal mellem 0 og 100. Select Case-strukturen kontrollerer først for at se, om rawScore er negativ, og i bekræftende fald returnerer funktionen en fejlmeddelelse. Den næste sagserklæring kontrollerer for at se, om scoren er mindre end 60, og funktionen returnerer bogstavkarakteren “F”, hvis den er. Den næste sagserklæring søger en score, der er mindre end 70. Hvis vi kommer så langt, ved vi allerede (takket være den foregående sagserklæring), at scoren er mindst 60. Derfor undersøger denne sag virkelig, om skåren er mellem 60 og 70 (inklusive 60, men ikke 70). I så fald returneres bogstavkvaliteten “D”. Resten af sagserklæringerne foregår på samme måde. Sagen Elsechecks for en score større end 100 og returnerer en anden fejlmeddelelse, hvis den er.
Et andet eksempel: Tamning af RGB-funktionen
Du kan bruge RGB (rød, grøn, blå) VBA-funktion når som helst du har brug for angiv en farve til en ejendom. Hver af de tre navngivne argumenter (rød, grøn og blå) er heltal mellem 0 og 255, der bestemmer, hvor meget af hver komponentfarve blandes i den endelige farve. I den røde komponent betyder for eksempel 0, at der ikke er rødt, og 255 betyder, at der er rent rødt. Hvis alle tre værdier er de samme, får du en grå nuance.
Her er nogle eksempler på værdier for hver komponent, der producerer almindelige farver:
Rød | Blå | Grøn | Resultat |
0 | 0 | 0 | Sort |
0 | 0 | 255 | Blå |
0 | 255 | 0 | Grøn |
0 | 255 | 255 | Cyan |
255 | 0 | 0 | Rød |
255 | 0 | 255 | Margenta |
255 | 255 | 0 | Gul |
255 | 255 | 255 | Hvid |
I stedet for at huske disse kombinationer, lad os dog sætte VBA og Select Case i arbejde for at gøre det lettere at vælge farver. viser VBAColor-funktionen, som lader dig bruge navne (for eksempel “rød” eller “blå”) i stedet for kryptisk følelsesløs er kombinationer for at indstille 16 af de mest almindelige farver.
En funktion, der accepterer et farvenavn som en streng og returnerer den tilsvarende RGB-værdi
VBAColor tager et enkelt argument, colorName, som er navnet på den farve, du har vil arbejde med. Bemærk hvordan Select Case-sætningen masserer argumentet for at forhindre fejl:
Select Case LCase(Trim(colorName))
Trim-funktionen fjerner eventuelle fremmede mellemrum i starten og slutningen af argumentet, og LCase-funktionen konverterer colorName til små bogstaver. Dette sikrer, at funktionen ikke skelnes mellem store og små bogstaver, hvilket betyder, at det ikke betyder noget, om du sender sort, sort eller sort: Funktionen fungerer stadig. forskellige farvenavne og returnere den passende RGB-værdi. Du kan bruge ColorTester-proceduren til at give VBAColora-hvirvel. Denne procedure formaterer kun fontfarven på den aktuelt valgte regnearkcelle.
Bemærk: VBA definerer også otte farvekonstanter du kan bruge, når du bare har brug for de grundlæggende farver: vbBlack, vbBlue, vbCyan, vbGreen, vbMagenta, vbRed, vbWhite og vbYellow.