eval (ez_write_tag ([[468,60], „sourcedaddy_com-box-3”, „ezslot_1”, 102, „0”, „0”])); Declarația de caz selectată
MS-Excel / Formatare generală
Efectuarea mai multor teste cu If … ElseIf este o tehnică la îndemână – este un instrument VBA pe care îl veți ajunge destul de des. Cu toate acestea, devine rapid dificil pe măsură ce numărul testelor pe care trebuie să le faceți crește. „Este în regulă pentru două sau trei teste, dar mai mult decât atât face ca logica să fie mai greu de urmat.
Pentru aceste situații, declarația Select Case a VBA este o alegere mai bună. Ideea este să oferiți o expresie logică la început și apoi să enumerați o serie de rezultate posibile. Pentru fiecare posibil rezultat – numit caz – furnizați una sau mai multe instrucțiuni VBA pentru a executa cazul în care cazul se dovedește a fi adevărat. Aici este sintaxa:
Select Case TestExpression Case FirstCaseList Case SecondCaseList <etc> Case Else End Select
TestExpression
Această expresie este evaluată la începutul structurii. trebuie să returneze o valoare (logică, numerică, șir și așa mai departe).
CaseList
O listă cu unul sau mai multe rezultate posibile pentru TestExpression. Aceste rezultate sunt valori sau expresii separate prin virgule. VBA examinează fiecare element din listă pentru a vedea dacă una se potrivește cu TestExpression. Expresiile pot lua oricare dintre următoarele forme:ExpressionExpression To ExpressionIs LogicalOperator ExpressionCuvântul cheie To definește un interval de valori (de exemplu, 1 până la 10) . Cuvântul cheie Is definește un interval deschis de valori (de exemplu, Is > = 100).
Instrucțiuni
Acestea sunt instrucțiunile pe care VBA le execută dacă o parte din CaseList-ul asociat se potrivește cu TestExpression. VBA rulează opțiunile ElseStatements opționale dacă niciun CaseList nu conține o potrivire pentru TestExpression.
Notă: dacă mai multe CaseList conține un element TestExpression, VBA rulează numai declarațiile asociate cu CaseList care apare mai întâi în structura Select Case.
Listarea arată cum ați folosi Select Case pentru a rezolva problema argumentului Frecvență.
O procedură care utilizează Selectați caz pentru a testa mai multe valori A Exemplu de caz selectat: convertirea scorurilor de testare în note de litere
Pentru a vă ajuta să obțineți o senzație mai bună pentru declarația Selectați caz, să aruncăm o privire la un alt exemplu care prezintă mai bine talentele unice ale acestui puternic structura. Să presupunem că doriți să scrieți o procedură care convertește un scor brut al testului într-o notă de literă conform următorului tabel:
Scor brut | Grad de literă |
90 și peste | A |
Între 80 și 89 | B |
Între 70 și 79 | C |
Între 60 și 69 | D |
Mai puțin de 60 | F |
Listarea arată procedura LetterGrade, care utilizează o instrucțiune Select Case pentru a face conversia.
Argumentul rawScore este o valoare întreagă între 0 și 100. Structura Select Case firstfest verifică dacă rawScore este negativ și, dacă da, funcția returnează un mesaj de eroare. Următoarea declarație de caz verifică dacă scorul este mai mic de 60, iar funcția returnează nota literei „F” dacă este. Următoarea declarație de caz caută un scor mai mic de 70. Dacă ajungem până aici, știm deja (mulțumită declarației de caz precedente) că scorul este de cel puțin 60. Prin urmare, acest caz verifică cu adevărat dacă scorul este între 60 și 70 (inclusiv 60, dar fără a include 70). Dacă da, litera „D” este returnată. Restul declarațiilor de caz procedează în același mod. Case Elsech caută un scor mai mare de 100 și returnează un alt mesaj de eroare dacă este.
Un alt exemplu: Îmbunătățirea funcției RGB
Puteți utiliza funcția VBA RGB (roșu, verde, albastru) oricând doriți să specificați o culoare pentru o proprietate. Fiecare dintre cele trei argumente numite (roșu, verde și albastru) sunt numere între 0 și 255 care determină cât de mult din fiecare culoare componentă este amestecat în culoarea finală. În componenta roșie, de exemplu, 0 înseamnă că nu este prezent roșu și 255 înseamnă că este prezent roșu pur. Dacă toate cele trei valori sunt aceleași, veți obține o nuanță de gri.
Iată câteva exemple de valori pentru fiecare componentă care produc culori comune:
Roșu | Albastru | Verde | Rezultat |
0 | 0 | 0 | Negru |
0 | 0 | 255 | Albastru |
0 | 255 | 0 | Verde |
0 | 255 | 255 | Cyan |
255 | 0 | 0 | Roșu |
255 | 0 | 255 | Margenta |
255 | 255 | 0 | Galben |
255 | 255 | 255 | Alb |
Cu toate acestea, mai degrabă decât să memoreze aceste combinații, să punem VBA și Select Case pentru a face mai ușoară alegerea culorilor. afișează funcția VBAColor, care vă permite să utilizați nume (de exemplu, „roșu” sau „albastru”) mai degrabă decât amorțeală criptică Sunt combinații pentru a seta 16 dintre cele mai comune culori.
O funcție care acceptă un nume de culoare ca un șir și returnează valoarea RGB corespunzătoare
VBAColor ia un singur argument, colorName, care este numele culorii pe care o vreau să lucrez cu. Observați cum instrucțiunea Select Case masează argumentul pentru a preveni erorile:
Select Case LCase(Trim(colorName))
Funcția Trim elimină orice spații străine la început și sfârșitul argumentului, iar funcția LCase convertește colorName în minuscule. Acest lucru asigură faptul că funcția nu este sensibilă la majuscule, ceea ce înseamnă că nu contează dacă trimiteți negru, NEGRU sau Negru: Funcția va funcționa în continuare.
Restul funcției folosește instrucțiunile de caz pentru a verifica dacă diferite nume de culori și întoarceți valoarea RGB corespunzătoare. Puteți utiliza procedura ColorTester pentru a da vârtej VBAColora. Această procedură formată doar culoarea fontului pentru celula de foaie de lucru selectată în prezent.
Notă: VBA definește, de asemenea, opt constante de culoare care puteți utiliza atunci când aveți nevoie doar de culorile de bază: vbBlack, vbBlue, vbCyan, vbGreen, vbMagenta, vbRed, vbWhite și vbYellow.