Switch VBA - Come utilizzare l'istruzione Switch in Excel VBA?

Sommario:

Anonim

Dichiarazione switch VBA Excel

Il passaggio a VBA è simile alla funzione di selezione del caso. L'unica differenza tra questi è che dobbiamo selezionare codici molto minori in uno switch rispetto al caso selezionato. Possiamo scrivere un'istruzione switch all'interno di una sottoprocedura o possiamo scriverla come una funzione definita dall'utente in VBA.

Switch in VBA valuta un'espressione e fornisce l'output in base alle condizioni per quell'espressione. In alcuni casi selezionati, abbiamo definito casi in cui se abbiamo un caso il risultato dovrebbe essere b e così via. Ciò richiedeva di scrivere molti codici per l'istruzione case selezionata, ma in Switch possiamo unire tutte le condizioni e le espressioni in un'istruzione anziché avere più istruzioni case.

Sintassi dell'istruzione Switch

Switch calcola la prima espressione e se il valore è vero restituisce il valore per l'espressione e se il valore per espressione 1 non è vero, continua per lo stesso calcolo per l'espressione 2 e se il risultato è vero, viene visualizzato il valore 2 ma se l'espressione restituita è falsa, passa a un'altra espressione.

Quindi, cosa succede se nessuna delle espressioni è vera e tutte vengono restituite come false, in tal caso si ottiene un errore di runtime a meno che non si abbia un errore di gestione preventiva per tale scenario.

Come utilizzare l'istruzione Switch in Excel VBA?

Di seguito sono riportati i diversi esempi per utilizzare l'istruzione Switch VBA in Excel.

È possibile scaricare questo modello di Excel Switch VBA qui - Modello di Excel Switch VBA

Switch VBA - Esempio n. 1

Cominciamo con l'esempio di base per avere un'idea dell'istruzione switch VBA. Prenderemo input dall'utente e in base a tale input definiremo l'output. Prenderemo input dal numero 1 al 5 e in base all'input avremo risultati predefiniti ma se l'utente inserisce un numero diverso dal nostro intervallo, dovremo gestire tale errore.

Seguire i passaggi seguenti per utilizzare l'opzione Switch in Excel VBA:

Passaggio 1: dalla scheda Visual Basic, inserisci l'editor VB dalla scheda Sviluppo.

Passaggio 2: nella finestra dell'editor VB, inserire un nuovo modulo dalla scheda Inserisci.

Passaggio 3: dichiarare una nuova sottoprocedura nel nuovo modulo appena creato.

Codice:

 Campione secondario () End Sub 

Passaggio 4: dichiarare due variabili A e B, una come numero intero e l'altra come stringa.

Codice:

 Sottocampione () Dim A come intero Dim B come stringa Fine Sottotitolo 

Passaggio 5: nella variabile A, memorizzare il valore fornito dall'utente utilizzando la funzione casella di input.

Codice:

 Esempio secondario () Dim A come intero Dim B come stringa A = InputBox ("Immettere un valore", "il valore deve essere compreso tra 1 e 5") End Sub 

Passaggio 6: ora nella variabile B utilizzeremo un'istruzione switch VBA per valutare il risultato secondo l'input fornito dall'utente.

Codice:

 Esempio secondario () Dim A come intero Dim B come stringa A = InputBox ("Immettere un valore", "il valore deve essere compreso tra 1 e 5") B = Switch (A = 1, "One", A = 2, "Two ", A = 3, " Tre ", A = 4, " Quattro ", A = 5, " Cinque ") End Sub 

Passaggio 5: visualizzare il valore memorizzato in B utilizzando la funzione MSGBOX.

Codice:

 Esempio secondario () Dim A come intero Dim B come stringa A = InputBox ("Immettere un valore", "il valore deve essere compreso tra 1 e 5") B = Switch (A = 1, "One", A = 2, "Two ", A = 3, " Tre ", A = 4, " Quattro ", A = 5, " Cinque ") MsgBox B End Sub 

Passaggio 6: eseguire il codice sopra premendo il tasto F5 e ci chiede di inserire un numero intero. Fornire un numero 3 e premere ok per vedere il risultato.

Passaggio 7: Ora eseguiamo nuovamente il codice e immettiamo il numero 6 e vediamo il risultato che otteniamo.

Otteniamo l'errore di runtime poiché nella nostra istruzione switch non esiste un'espressione da definire 6. Pertanto, in tali scenari, è necessario disporre di una gestione degli errori preventiva.

Passaggio 8: per superare questo errore di runtime, dichiarare un'altra variabile Var come Variante.

Codice:

 Esempio secondario () Dim A come intero Dim B come stringa Dim var come variante A = InputBox ("Immettere un valore", "il valore deve essere compreso tra 1 e 5") B = Switch (A = 1, "One", A = 2, "Due", A = 3, "Tre", A = 4, "Quattro", A = 5, "Cinque") MsgBox B End Sub 

Passaggio 9: prima della nostra istruzione switch utilizzare l'istruzione goto on error in modo che se il codice trova un errore sappia dove andare.

Codice:

 Esempio secondario () Dim A come intero Dim B come stringa Dim var come variante A = InputBox ("Immettere un valore", "il valore deve essere compreso tra 1 e 5") In caso di errore Vai a var B = Switch (A = 1, "One ", A = 2, " Due ", A = 3, " Tre ", A = 4, " Quattro ", A = 5, " Cinque ") MsgBox B End Sub 

Passaggio 10: ora definisci cosa accadrà se il codice rileva un errore,

Codice:

 Sottocampione () Dim A come intero Dim B come stringa Dim var come variante A = InputBox ("Immettere un valore", "il valore deve essere compreso tra 1 e 5") In caso di errore Vai a var B = Switch (A = 1, "One ", A = 2, " Due ", A = 3, " Tre ", A = 4, " Quattro ", A = 5, " Cinque ") MsgBox B var: MsgBox" Hai inserito un numero non valido "Riprendi Next End Sub 

Passaggio 11: Ora eseguiamo nuovamente il codice premendo F5 o facendo clic sul pulsante Riproduci e immetti il ​​valore 6, quindi premi OK per vedere il risultato finale nel caso in cui l'istruzione switch rilevi un errore.

Switch VBA - Esempio n. 2

Per questo esempio, ho i dati nel foglio 1 che contiene il nome di alcuni film e la loro durata in minuti. In base alla lunghezza che voglio definire è il film breve o super lungo. Dai un'occhiata ai dati qui sotto.

Seguire i passaggi seguenti per utilizzare l'opzione Switch in Excel VBA:

Passaggio 1: Iniziamo nello stesso modulo e iniziamo definendo un'altra sottoprocedura come segue.

 Sub Sample1 () End Sub 

Passaggio 2: dichiarare due variabili A e B, una come numero intero e un'altra come stringa come segue,

 Sub Sample1 () Dim A Asteger Dim B As String End Sub 

Passaggio 3: ora nella variabile A memorizziamo il valore della lunghezza del film per qualsiasi film.

 Sub Sample1 () Dim A Asteger Dim B As String A = Range ("A3"). Offset (0, 1). Valore fine sub 

Passaggio 4: ora nella variabile B, usiamo un'istruzione switch VBA per definire quale sarebbe lo scenario per ogni lunghezza del film.

 Campione secondario1 () Dim A come intero Dim B come stringa A = intervallo ("A3"). Offset (0, 1). Valore B = interruttore (A <= 70, "troppo corto", A <= 100, "corto ", A <= 120, " Lungo ", A <= 150, " Troppo lungo ") End Sub 

Passaggio 5: Ora, se il valore è maggiore di 180, dovremmo avere un altro gestore degli errori qui o possiamo semplicemente scrivere un'altra espressione come True, Value. Poiché tutti gli altri valori verranno restituiti poiché il codice falso eseguirà questa espressione.

 Campione secondario1 () Dim A come intero Dim B come stringa A = intervallo ("A3"). Offset (0, 1). Valore B = interruttore (A <= 70, "troppo corto", A <= 100, "corto ", A <= 120, " Long ", A <= 150, " Too Long ", True, " Boring ") End Sub 

Passaggio 6: visualizzare il valore di B utilizzando la funzione msgbox.

 Campione secondario1 () Dim A come intero Dim B come stringa A = intervallo ("A3"). Offset (0, 1). Valore B = interruttore (A <= 70, "troppo corto", A <= 100, "corto ", A <= 120, " Lungo ", A <= 150, " Troppo lungo ", Vero, " Alesatura ") MsgBox B End Sub 

Passaggio 7: eseguire il codice premendo il tasto F5 o facendo clic sul pulsante Riproduci e vedere l'output.

La cella A3 ha un film 2 la cui lunghezza era 100, quindi l'output è breve.

Switch VBA - Esempio n. 3

Consentire di utilizzare l'istruzione switch per creare una funzione definita dall'utente per l'esempio sopra in modo da poterla utilizzare nel nostro foglio di lavoro ogni volta che è necessario.

Seguire i passaggi seguenti per utilizzare l'opzione Switch in Excel VBA:

Passaggio 1: nello stesso modulo dichiarare una funzione chiamata come lunghezza del film.

 Function FilmLength (Leng As Integer) As String End Function 

Passaggio 2: ora utilizza un'istruzione Switch VBA per definire i parametri in base alla lunghezza come segue,

 Funzione Lunghezza film (Leng come intero) Come String FilmLength = Switch (Leng <= 70, "Too Short", Leng <= 100, "Short", Leng <= 120, "Long", Leng <= 150, "Too Long", True, "Boring") End Function 

Passaggio 3: ora andiamo nel foglio di lavoro in cui avevamo i nostri dati, type = FilmLength (

Step 4: Possiamo vedere la nostra funzione lì dare un argomento come valori nella cella B2.

Passaggio 5: dopo aver applicato la formula premere Invio.

Passaggio 6: Ora trascina la funzione sulla cella C10 e guarda il risultato.

Cose da ricordare

  • Cambia funzione valuta l'espressione in essa. Se la prima espressione viene valutata vera, non valuta le altre espressioni.
  • Se nessuna delle espressioni è vera, restituisce un errore di runtime.
  • È necessario disporre di un gestore errori nell'istruzione o nell'espressione switch in modo che se ogni espressione viene restituita falsa non si verifichi un errore di runtime.
  • Un interruttore è simile all'istruzione case select.

Articoli consigliati

Questa è una guida allo switch VBA. Qui discutiamo come utilizzare l'istruzione switch in VBA di Excel insieme ad alcuni esempi pratici e template Excel scaricabili. Puoi anche consultare i nostri altri articoli suggeriti:

  1. Uso della funzione VBA InStr
  2. Funzione SWITCH di Excel
  3. Numero casuale VBA
  4. Funzione CONCATENA in Excel