eval (ez_write_tag ([[468,60], ”sourcedaddy_com-box-3”, ”ezslot_1”, 102, ”0”, ”0”])); Använda Select Case Statement
MS-Excel / Allmän formatering
Utföra flera tester med If … ElseIf är en praktisk teknik – det är ett VBA-verktyg du ”kommer att hitta ganska ofta. Det blir dock snabbt obehagligt eftersom antalet tester du behöver göra blir större. Det är okej för två eller tre tester, men mer än det gör logiken svårare att följa.
För dessa situationer är VBA: s Select Case-uttalande ett bättre val. Tanken är att du ger ett logiskt uttryck i början och sedan listar en serie möjliga resultat. För varje möjligt resultat kallat ett ärende – du ger ett eller flera VBA-uttalanden för att utföra om fallet skulle visa sig vara sant. Här är syntaxen:
Select Case TestExpression Case FirstCaseList Case SecondCaseList <etc> Case Else End Select
Testuttryck
Detta uttryck utvärderas i början av strukturen. Det måste returnera ett värde (logiskt, numeriskt, sträng och så vidare).
CaseList
En lista med ett eller flera möjliga resultat för TestExpression. Dessa resultat är värden eller uttryck åtskilda med komma. VBA undersöker varje element i lista för att se om man matchar TestExpression. Uttrycken kan ha någon av följande former:ExpressionExpression To ExpressionIs LogicalOperator ExpressionNyckelordet To definierar ett värdeintervall (till exempel 1 till 10) . Is-nyckelordet definierar ett öppet intervall med värden (till exempel är > = 100).
Uttalanden
Detta är uttalanden som VBA kör om någon del av tillhörande CaseList matchar TestExpression. VBA kör de valfria ElseStatements om ingen CaseList innehåller en matchning för TestExpression.
Obs! Om mer än en CaseList innehåller ett element som matchar TestExpression, VBA kör enbart de uttalanden som är associerade med CaseList som visas först i Select Case-strukturen.
Listning visar hur du skulle använda Select Case för att hantera Frekvensargumentproblemet.
En procedur som använder Välj fall för att testa flera värden A Välj fall Exempel: Konvertera testresultat till bokstavsbetyg
För att hjälpa dig få en bättre känsla för Select Case-uttalandet, låt oss titta på ett annat exempel som bättre visar de unika talangerna för detta kraftfulla strukturera. Antag att du vill skriva ett förfarande som omvandlar en rå testpoäng till en bokstavsklass enligt följande tabell:
Raw Score | Letter Grade |
90 och över | A |
Mellan 80 och 89 | B |
Mellan 70 och 79 | C |
Mellan 60 och 69 | D |
Mindre än 60 | F |
Listning visar LetterGrade-proceduren, som använder ett Select Case-uttalande för att göra konverteringen.
RawScore-argumentet är ett heltal mellan 0 och 100. Select Case-strukturen kontrollerar först om rawScore är negativt och i så fall returnerar funktionen ett felmeddelande. Nästa falluttalande kontrollerar om poängen är mindre än 60, och funktionen returnerar bokstavsbetyget ”F” om det är. Nästa ärende uttalande letar efter en poäng som är mindre än 70. Om vi når så långt vet vi redan (tack vare föregående fall uttalande) att poängen är minst 60. Därför kontrollerar detta fall verkligen för att se om poängen är mellan 60 och 70 (inklusive 60 men inte 70). I så fall återgår bokstaven ”D”. Resten av ärendena fortsätter på samma sätt. Fallet Elsechecks för en poäng över 100 och returnerar ett annat felmeddelande om det är.
Ett annat exempel: Tämja RGB-funktionen
Du kan använda RGB (röd, grön, blå) VBA-funktion när som helst du behöver ange en färg för en egendom. Var och en av de tre namngivna argumenten (rött, grönt och blått) är heltal mellan 0 och 255 som avgör hur mycket av varje komponentfärg blandas i den slutliga färgen. I den röda komponenten, till exempel, betyder 0 att inget rött är närvarande och 255 betyder att rent rött är närvarande. Om alla trevärden är desamma får du en grå nyans.
Här är några exempelvärden för varje komponent som producerar vanliga färger:
Röd | Blå | Grön | Resultat |
0 | 0 | 0 | Svart |
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 | Vit |
I stället för att memorera dessa kombinationer, låt oss dock sätta VBA och Select Case för att göra färgerna enklare. visar VBAColor-funktionen, som låter dig använda namn (till exempel ”röd” eller ”blå”) snarare än kryptisk domning kombinationer för att ställa in 16 av de vanligaste färgerna.
En funktion som accepterar ett färgnamn som en sträng och returnerar motsvarande RGB-värde
VBAColor tar ett enda argument, colorName, vilket är namnet på färgen du vill jobba med. Lägg märke till hur Select Case-påståendet masserar argumentet för att förhindra fel:
Select Case LCase(Trim(colorName))
Trim-funktionen tar bort eventuella yttre mellanslag i början och slutet av argumentet och LCase-funktionen konverterar colorName till gemener. Detta säkerställer att funktionen inte är skiftlägeskänslig, vilket betyder att det inte spelar någon roll om du skickar svart, SVART eller svart: Funktionen fungerar fortfarande.
Resten av funktionen använder falluttal för att kontrollera olika färgnamn och återställa lämpligt RGB-värde. Du kan använda ColorTester-proceduren för att ge VBAColora virvel. Denna procedur formaterar bara teckensnittsfärgen för den valda kalkylbladcellen.
Obs! VBA definierar också åtta färgkonstanter som du kan använda när du bara behöver de grundläggande färgerna: vbBlack, vbBlue, vbCyan, vbGreen, vbMagenta, vbRed, vbWhite och vbYellow.