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 VBASwitch 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:
- Uso della funzione VBA InStr
- Funzione SWITCH di Excel
- Numero casuale VBA
- Funzione CONCATENA in Excel