eval (ez_write_tag ([[468,60], “sourcedaddy_com-box-3”, “ezslot_1”, 102, “0”, “0”])); Utilizzo l’istruzione Select Case
MS-Excel / Formattazione generale
L’esecuzione di più test con If … ElseIf è una tecnica pratica, “è uno strumento VBA” che utilizzi abbastanza spesso. Tuttavia, diventa rapidamente ingombrante man mano che il numero di test che devi eseguire aumenta. Va bene per due o tre test, ma più di questo rende la logica più difficile da seguire.
Per queste situazioni, l’istruzione Select Case di VBA è una scelta migliore. L’idea è di fornire un’espressione logica all’inizio e quindi elencare una serie di possibili risultati. Per ogni possibile risultato, chiamato caso, fornisci una o più istruzioni VBA da eseguire se il caso si rivela vero. Ecco la sintassi:
Select Case TestExpression Case FirstCaseList Case SecondCaseList <etc> Case Else End Select
TestExpression
Questa espressione viene valutata all’inizio della struttura. deve restituire un valore (logico, numerico, stringa e così via).
CaseList
Un elenco di uno o più risultati possibili per TestExpression. Questi risultati sono valori o espressioni separati da virgole.VBA esamina ogni elemento nel list per vedere se una corrisponde a TestExpression. Le espressioni possono assumere una delle seguenti forme:ExpressionExpression To ExpressionIs LogicalOperator ExpressionLa parola chiave To definisce un intervallo di valori (ad esempio, da 1 a 10) . La parola chiave Is definisce un intervallo aperto di valori (ad esempio, Is > = 100).
Dichiarazioni
Queste sono le istruzioni che VBA esegue se qualsiasi parte di la CaseList associata corrisponde a TestExpression. VBA esegue ElseStatement opzionale se nessuna CaseList contiene una corrispondenza per TestExpression.
Nota: se più di una CaseList contiene un elemento che corrisponde TestExpression, VBA esegue solo le istruzioni associate alla CaseList che appare per prima nella struttura Select Case.
L’elenco mostra come useresti Select Case per gestire il problema dell’argomento Frequency.
A Procedure That Uses Seleziona caso per testare più valori Un esempio Seleziona caso: convertire i punteggi del test in voti in lettere
Per aiutarti a capire meglio la dichiarazione Seleziona caso, diamo uno sguardo a un altro esempio che mostri meglio i talenti unici di questo potente struttura. Supponi di voler scrivere una procedura che converte un punteggio di test non elaborato in un voto in lettere secondo la seguente tabella:
Punteggio grezzo | Voto in lettere |
90 e oltre | A |
Tra 80 e 89 | B |
Tra 70 e 79 | C |
Tra 60 e 69 | D |
Meno di 60 | F |
L’elenco mostra la procedura LetterGrade, che utilizza un’istruzione Select Case per effettuare la conversione.
L’argomento rawScore è un valore intero compreso tra 0 e 100. La struttura Select Case verifica innanzitutto se rawScore è negativo e, in tal caso, la funzione restituisce un messaggio di errore. La successiva istruzione Case verifica se il punteggio è inferiore a 60 e la funzione restituisce la lettera “F” se lo è. La successiva istruzione Case cerca un punteggio inferiore a 70. Se arriviamo a questo punto, sappiamo già (grazie alla precedente istruzione Case) che il punteggio è almeno 60. Pertanto, questo caso sta davvero verificando se il punteggio è tra 60 e 70 (compresi 60, ma esclusi 70). In tal caso, viene restituita la lettera “D”. Il resto delle dichiarazioni del caso procedono allo stesso modo. Il Case El controlla un punteggio maggiore di 100 e restituisce un altro messaggio di errore se lo è.
Un altro esempio: domare la funzione RGB
Puoi utilizzare la funzione VBA RGB (rosso, verde, blu) ogni volta che ne hai bisogno specificare un colore per una proprietà. Ciascuno dei tre argomenti denominati (rosso, verde e blu) sono numeri interi compresi tra 0 e 255 che determinano la quantità di colore di ciascun componente miscelata nel colore finale. Nel componente rosso, ad esempio, 0 significa che non è presente il rosso e 255 significa che è presente il rosso puro. Se tutti e tre i valori sono uguali, si ottiene una sfumatura di grigio.
Di seguito sono riportati alcuni valori di esempio per ciascun componente che produce colori comuni:
Rosso | Blu | Verde | Risultato |
0 | 0 | 0 | Nero |
0 | 0 | 255 | Blu |
0 | 255 | 0 | Verde |
0 | 255 | 255 | Ciano |
255 | 0 | 0 | Rosso |
255 | 0 | 255 | Margenta |
255 | 255 | 0 | Giallo |
255 | 255 | 255 | Bianco |
Tuttavia, invece di memorizzare queste combinazioni, mettiamo in funzione VBA e Seleziona caso per rendere più facile la scelta dei colori. mostra la funzione VBAColor, che ti permette di usare nomi (ad esempio, “rosso” o “blu”) invece di criptici insensibili er combinazioni per impostare 16 dei colori più comuni.
Una funzione che accetta un nome di colore come stringa e restituisce il valore RGB corrispondente
VBAColor accetta un singolo argomento, colorName, che è il nome del colore vuoi lavorare con. Nota come l’istruzione Select Case massaggia l’argomento per evitare errori:
Select Case LCase(Trim(colorName))
La funzione Trim rimuove gli spazi estranei all’inizio e fine dell’argomento e la funzione LCase converte colorName in minuscolo. Ciò garantisce che la funzione non sia sensibile al maiuscolo / minuscolo, il che significa che non importa se si invia nero, NERO o Nero: la funzione continuerà a funzionare.
Il resto della funzione utilizza le istruzioni Case per vari nomi di colori e restituire il valore RGB appropriato. È possibile utilizzare la procedura ColorTester per dare a VBAColora vortice. Questa procedura formatta semplicemente il colore del carattere della cella del foglio di lavoro attualmente selezionata.
Nota: VBA definisce anche otto costanti di colore che puoi usare quando ti servono solo i colori di base: vbBlack, vbBlue, vbCyan, vbGreen, vbMagenta, vbRed, vbWhite e vbYellow.