Caso di selezione VBA

Istruzione Seleziona caso di Excel VBA

Select Case è un sostituto della scrittura di più istruzioni if ​​in VBA, quando abbiamo molte condizioni in un codice potremmo dover usare più istruzioni If e che può essere noioso poiché diventa più complesso man mano che vengono fornite più istruzioni If, in select case statement definiamo i criteri come diversi casi e risultati secondo loro.

SELEZIONA CASO aiuta nel processo decisionale. In questo, viene utilizzata una sola espressione per valutare i diversi casi possibili. Molteplici condizioni vengono analizzate facilmente per eseguire il codice sviluppato. Questa istruzione case viene utilizzata come dichiarazione sostitutiva di ELSE IF per valutare le espressioni. È classificato come una funzione logica incorporata in Excel. Per utilizzare questa funzione, il codice viene inserito tramite l'editor di visual basic presentato nella scheda sviluppatore.

Spiegazione

Vari gruppi di istruzioni vengono utilizzati in Select Case. La seguente sintassi dovrebbe essere seguita per usarla in modo efficace. È simile all'istruzione switch presentata in altri linguaggi di programmazione come Java, C # e PHP.

 Seleziona [Case] ​​Espressione per testare [Case] ​​Elenco di dichiarazioni di espressioni (Case 1, Case 2, Case 3 e così via ...) Case Else (Else Statements) Fine Seleziona 

La spiegazione dei termini associati al caso selezionato viene fornita come segue

Un'espressione per il test: è necessaria per valutare i diversi tipi di dati come intero, stringa, booleano, oggetto e carattere.

Elenco di espressioni: le  espressioni vengono create con il caso per trovare la corrispondenza esatta dell'input immesso. Se sono presenti più di due espressioni, queste vengono separate utilizzando l'operatore virgola. "Is" è una parola chiave utilizzata per confrontare le due espressioni utilizzando gli operatori logici in Excel come =,, =.

  • Fine selezione: chiude la definizione del caso di selezione del costruttore
  • Dichiarazioni: le dichiarazioni vengono sviluppate utilizzando il caso per eseguire le espressioni che vengono valutate per analizzare se esiste un'istruzione corrispondente
  • Dichiarazioni Else: serve a testare l'istruzione else quando l'espressione di test non corrisponde ad alcuna istruzione case.

Come utilizzare l'istruzione Select Case VBA?

La funzione Seleziona caso fornita da VBA non viene eseguita nei normali fogli di lavoro. Dobbiamo utilizzare l'opzione Visual Basic nella scheda Sviluppatore. Funzioni definite dall'utente e codifica create in modalità sviluppatore per eseguire le varie piccole applicazioni in ambito business.

Viene utilizzato in situazioni in cui sono presenti istruzioni if ​​annidate in Excel. È l'opzione migliore per gestire una varietà di dichiarazioni di casi. Per utilizzare questa opzione in modo efficace, è necessario eseguire le seguenti attività

  • Prima di tutto, deve creare una macro inserendo il controllo del pulsante di comando nel foglio Excel.
  • Successivamente, fai clic con il pulsante destro del mouse sul pulsante di comando e seleziona l'opzione Visualizza codice
  • Inserisci il codice tra la funzione del pulsante di comando e end sub
  • Eseguire il debug del codice per identificare eventuali errori di sintassi.
  • Compilare il codice per trovare errori di compilazione per eseguire correttamente il programma
  • Modificare i valori di input per osservare risultati diversi in base ai criteri di corrispondenza
Puoi scaricare questo modello Excel per il caso di selezione VBA qui - Modello Excel per il caso di selezione VBA

Esempio n. 1: semplice istruzione Select Case

Questo esempio serve a comprendere il caso di selezione semplice per trovare il valore corrispondente.

Codice:

Private Sub Selcaseexmample () Dim A As Integer A = 20 Select Case A Case 10 MsgBox "First Case is matched!" Caso 20 MsgBox "Il secondo caso è abbinato!" Caso 30 MsgBox "Il terzo caso è abbinato in Seleziona caso!" Caso 40 MsgBox "Il quarto caso è abbinato in Select Case!" Case Else MsgBox "Nessuno dei casi corrisponde!" Fine Selezionare End Sub

Risultato:

L'istruzione quattro case e l'istruzione case else vengono utilizzate per confrontare l'espressione di test con casi diversi. Nel presente esempio, il secondo caso è abbinato come variabile A corrisponde a 20.

Esempio # 2 - Parola chiave "A" per testare i voti

Questo esempio spiega l'uso della parola chiave "A" con il caso select.

Codice:

Sottotitoli privati ​​Selcasetoesempio () Dim studentmarks As Integer studentmarks = InputBox ("Immettere un punteggio compreso tra 1 e 100?") Seleziona caso studentmarks Caso 1 - 36 MsgBox "Fallito!" Caso da 37 a 55 MsgBox "Grado C" Caso da 56 a 80 MsgBox "Grado B" Caso da 81 a 100 MsgBox "Grado A" Caso Else MsgBox "Fuori intervallo" Fine Seleziona Fine Sottotitoli

Risultato:

La parola chiave "To" è utile per definire l'insieme di espressioni di test in un intervallo. È utile per trovare il voto ottenuto da uno studente confrontando i diversi casi. Dopo aver eseguito il programma, dobbiamo inserire il valore per ottenere il risultato.

L'output viene visualizzato con una finestra di messaggio come mostrato nell'immagine sopra.

Esempio n. 3 - Utilizzo della parola chiave "È" con Seleziona maiuscolo / minuscolo

Questo esempio dimostra l'uso della parola chiave "Is" con il caso select.

Codice:

 Sub CheckNumber () Dim NumInput As Integer NumInput = InputBox ("Immettere un numero") Seleziona Case NumInput Case Is = 200 MsgBox "Hai inserito un numero maggiore o uguale a 200" End Seleziona End Sub 

La parola chiave "Is" aiuta a trovare i valori corrispondenti solo con istruzioni case. Confronta l'espressione di test con l'input fornito per produrre l'output.

L'output si ottiene come mostrato in figura se il valore inserito è maggiore di 200

Esempio # 4 - Con il pulsante di comando per modificare i valori

Il caso di selezione utilizzato anche con il pulsante di comando creando una macro.

Codice:

 Sub color () Dim color As String color = Range ("A1"). Value Seleziona Case color Case "Red", "Green", "Yellow" Range ("B1"). Value = 1 Case "White", "Black "," Brown "Intervallo (" B1 "). Valore = 2 Case" Blue "," Sky Blue "Intervallo (" B1 "). Valore = 3 Case Else Range (" B1 "). Valore = 4 End Select End Sub 

Come mostrato nel programma, l'input viene preso dalle celle del foglio di lavoro. Il programma viene eseguito dopo aver fatto clic sul pulsante di comando utilizzato dai controlli ActiveX. In questo, un separatore di virgola viene utilizzato per combinare le espressioni di prova.

Quando il valore nella cella A1 è cambiato, si verifica una modifica nella cella B1 anche eseguendo la macro Excel tramite il pulsante di comando. Puoi fare riferimento alla schermata riportata di seguito: -

Esempio # 5: controlla un numero pari o dispari

Questo esempio aiuta a controllare che un numero sia pari o dispari.

Codice:

 Sub CheckOddEven () CheckValue = InputBox ("Immettere il numero") Seleziona maiuscole / minuscole (CheckValue Mod 2) = 0 Case True MsgBox "Il numero è pari" Case False MsgBox "Il numero è dispari" End Seleziona End Sub 

La codifica viene sviluppata come mostrato nell'immagine e l'output viene visualizzato come segue quando viene inserito un numero pari.

Esempio n. 6: istruzioni Seleziona caso nidificate

L'annidamento è una funzione utile del caso selezionato e viene mostrato il modo in cui è fatto.

Codice:

 Sub TestWeekday () Select Case Weekday (Now) Case 1, 7 Select Case Weekday (Now) Case 1 MsgBox "Today is Sunday" Case Else MsgBox "Today is Saturday" End Select Case Else MsgBox "Today is a Weekday" End Select End Sub 

Here the select case is defined inside another select case to test a day, weekday, or weekend. Except case 1 and 7 remaining all are weekdays (Note: case 1 is Sunday and case 7 is Saturday)

Things to Remember

  • The ‘Is’ keyword using in the statement of [case] and [case else] are not equal.
  • ActiveX control should be used in executing program through a command button taking input and displaying output in the excel sheet range of cells.
  • It is hard to run the programs in VBA if macros are disabled and always enable Macros to get best results.
  • VBA is a case sensitive and input should be entered accurately to get better results.