Casa Social media Come usare If-Then in Excel 2016 VBA - dummies

Come usare If-Then in Excel 2016 VBA - dummies

Sommario:

Video: Excel VBA IF THEN Statement (with ELSEIF & Looping in cells) 2025

Video: Excel VBA IF THEN Statement (with ELSEIF & Looping in cells) 2025
Anonim

If-Then è la struttura di controllo più importante di VBA. Probabilmente utilizzerai questo comando ogni giorno. Utilizzare la struttura If-Then quando si desidera eseguire una o più istruzioni in modo condizionale. La clausola opzionale Else, se inclusa, consente di eseguire una o più istruzioni se la condizione che stai testando è non true. Ecco una semplice procedura di CheckUser, ricodificata per utilizzare la struttura If-Then-Else:

Sub CheckUser2 () UserName = InputBox ("Inserisci il tuo nome:") Se UserName = "Satya Nadella" Then MsgBox ("Welcome Satya …") '… [Altro codice qui] … Else MsgBox "Scusate. Solo Satya Nadella può gestirlo. "End If End Sub

If-Then examples

La seguente routine mostra la struttura If-Then senza la clausola Else facoltativa:

Sub GreetMe () If Time <0. 5 then MsgBox" Good Morning "End Sub

La procedura GreetMe utilizza la funzione Time di VBA per ottenere l'ora del sistema. Se l'ora corrente è inferiore a. 5, la routine mostra un saluto amichevole. Se il tempo è maggiore o uguale a 5, la routine finisce e non succede nulla.

Per visualizzare un saluto diverso se il tempo è maggiore o uguale a. 5, è possibile aggiungere un'altra istruzione If-Then dopo la prima:

Sub GreetMe2 () If Time = 0. 5 Then MsgBox "Good Afternoon" End Sub

Si noti che> = (maggiore o uguale a) è usato per la seconda istruzione If-Then. Questo assicura che l'intera giornata sia coperta. Se> (maggiore di) era stato usato, non appariva alcun messaggio se questa procedura fosse stata eseguita esattamente alle 12.00 di mezzogiorno. È piuttosto improbabile, ma con un programma importante come questo, non vuoi correre rischi.

Un esempio If-Then-Else

Un altro approccio al problema precedente utilizza la clausola Else. Ecco la stessa routine ricodificata per utilizzare la struttura If-Then-Else:

Sub GreetMe3 () Se Tempo <0. 5 poi MsgBox "Good Morning" Else _ MsgBox "Good Afternoon" End Sub

Notare che la riga il carattere di continuazione (carattere di sottolineatura) è usato nell'esempio precedente. L'istruzione If-Then-Else è in realtà una singola affermazione. VBA fornisce un modo leggermente diverso di codificare costrutti If-Then-Else che utilizzano un'istruzione End If. Pertanto, la procedura GreetMe può essere riscritta come

Sub GreetMe4 () Se Tempo <0. 5 poi MsgBox "Buongiorno" Else MsgBox "Buon pomeriggio" End If End Sub

In effetti, è possibile inserire qualsiasi numero di istruzioni sotto il Se parte e qualsiasi numero di dichiarazioni sotto la parte Else. Questa sintassi è più facile da leggere e rende le dichiarazioni più brevi.

Che cosa succede se è necessario espandere la routine GreetMe per gestire tre condizioni: mattina, pomeriggio e sera? Hai due opzioni: usa tre istruzioni If-Then o usa una struttura nested If-Then-Else. Annidare significa posizionare una struttura If-Then-Else all'interno di un'altra struttura If-Then-Else. Il primo approccio, utilizzando tre istruzioni If-Then, è più semplice:

Sub GreetMe5 () Dim Msg As String If Time = 0. 5 And Time = 0. 75 Then Msg = "Evening" MsgBox "Good" & Msg End Sotto

È stata aggiunta una nuova svolta con l'uso di una variabile. La variabile Msg ottiene un valore di testo diverso, a seconda dell'ora del giorno. L'istruzione MsgBox visualizza il saluto: Buongiorno, Buon pomeriggio o Buonasera.

La seguente routine esegue la stessa azione ma utilizza una struttura If-Then-End If:

Sub GreetMe6 () Dim Msg As String If Time = 0. 5 And Time = 0. 75 Then Msg = "Evening" End If MsgBox "Good" e Msg End Sub

Using ElseIf

Negli esempi precedenti, ogni istruzione nella routine viene eseguita. Una struttura leggermente più efficiente uscirebbe dalla routine non appena una condizione risultasse vera. Al mattino, ad esempio, la procedura dovrebbe visualizzare il messaggio Good Morning e quindi uscire senza valutare le altre condizioni superflue.

Con una piccola routine come questa, non devi preoccuparti della velocità di esecuzione. Ma per le applicazioni più grandi in cui la velocità è critica, è necessario conoscere un'altra sintassi per la struttura If-Then.

Ecco come puoi riscrivere la routine GreetMe usando questa sintassi:

Sub GreetMe7 () Dim Msg As String If Time = 0. 5 And Time <0. 75 then Msg = "Afternoon" Else Msg = "Evening "End If MsgBox" Good "e Msg End Sub

Quando una condizione è vera, VBA esegue le istruzioni condizionali e la struttura If termina. In altre parole, questa procedura è un po 'più efficiente degli esempi precedenti. Il compromesso è che il codice è più difficile da capire.

Un altro esempio If-Then

Ecco un altro esempio che utilizza la forma semplice della struttura If-Then. Questa procedura richiede all'utente una quantità e quindi visualizza lo sconto appropriato, in base alla quantità immessa dall'utente:

Sub ShowDiscount () Dim Quantità As Long Dim Discount As Double Quantità = InputBox ("Immetti quantità:") Se Quantity > 0 Quindi Sconto = 0. 1 Se Quantità> = 25 Quindi Sconto = 0. 15 Se Quantità> = 50 Quindi Sconto = 0. 2 Se Quantità> = 75 Quindi Sconto = 0. 25 MsgBox "Sconto:" & Sconto Fine Sott

Si noti che ciascuna istruzione If-Then in questa routine viene eseguita e il valore di Sconto può cambiare mentre le istruzioni vengono eseguite. Tuttavia, la routine visualizza in definitiva il valore corretto per Sconto perché le istruzioni If-Then sono in ordine di valori di sconto crescente.

La seguente procedura esegue le stesse attività utilizzando la sintassi alternativa ElseIf. In questo caso, la routine termina immediatamente dopo l'esecuzione delle istruzioni per una condizione vera:

Sub ShowDiscount2 () Dim Quantità As Long Dim Discount As Double Quantità = InputBox ("Immetti quantità:") Se Quantità> 0 E Quantità <25 quindi Sconto = 0.1 ElseIf Quantity> = 25 And Quantity <50 then Discount = 0. 15 ElseIf Quantity> = 50 And Quantity <75 then Discount = 0. 2 ElseIf Quantity> = 75 Then Discount = 0. 25 End If MsgBox "Discount:" & Discount End Sub

Queste strutture If-Then multiple sono piuttosto ingombranti. Potresti voler usare la struttura If-Then solo per semplici decisioni binarie.

Come usare If-Then in Excel 2016 VBA - dummies

Scelta dell'editore

Il programma in cinque passaggi per superare la menopausa - dummy

Il programma in cinque passaggi per superare la menopausa - dummy

Alcune donne capiscono a malapena che la menopausa è loro. Altre donne, tuttavia, sono meno fortunate. Se sei uno di questi, prendi in mano questi pochi modi per rendere la tua esperienza più facile per te stesso: capisci e accetta che stai attraversando una transizione naturale, proprio come la pubertà. Fortunatamente, sei più vecchio e più saggio di te ...

Menopausa For Dummies Cheat Sheet (edizione UK) - dummies

Menopausa For Dummies Cheat Sheet (edizione UK) - dummies

Menopausa segna la fine della fase riproduttiva della tua vita e così è un momento significativo di cambiamento fisico, emotivo e mentale per molte donne ma, per generazioni, donne di tutte le età hanno vagato alla cieca in menopausa senza sapere cosa aspettarsi. Qui puoi scoprire alcune delle nozioni di base.

Perimenopausa: facilitare la transizione dalle mestruazioni alla menopausa - manichini

Perimenopausa: facilitare la transizione dalle mestruazioni alla menopausa - manichini

Mestruazioni e menopausa sono ben noti biologici pietre miliari nella vita di una femmina. Contrariamente al pensiero popolare, la menopausa non è il periodo di mesi o anni in cui una donna sta "attraversando il cambiamento". "Questo lasso di tempo è chiamato perimenopausa. La menopausa è una data effettiva nel tempo. In particolare, è il 12 ° anniversario dell'ultimo ciclo mestruale di una donna. ...

Scelta dell'editore

Come utilizzare il filtro automatico personalizzato su una tabella di Excel - dummies

Come utilizzare il filtro automatico personalizzato su una tabella di Excel - dummies

È Possibile creare un filtro automatico personalizzato . Per fare ciò, seleziona il comando Filtro testo dal menu della tabella e scegli una delle opzioni di filtro del testo. Indipendentemente dall'opzione di filtro del testo selezionata, Excel visualizza la finestra di dialogo Filtro automatico personalizzato. Questa finestra di dialogo consente di specificare con estrema precisione quali record si desidera ...

Come utilizzare la funzione DPRODUCT in un database Excel - dummies

Come utilizzare la funzione DPRODUCT in un database Excel - dummies

DPRODUCT moltiplica i valori che corrispondono al criterio in un database Excel. Questo è potente ma anche in grado di produrre risultati che non sono l'intenzione. In altre parole, è una cosa da aggiungere e ricavare una somma. Questa è un'operazione comune su un set di dati. Osservando la seguente figura, è possibile ...

Come utilizzare la funzione DPRODUCT in Excel - dummy

Come utilizzare la funzione DPRODUCT in Excel - dummy

La funzione DPRODUCT in Excel è strana. La funzione DPRODUCT moltiplica i valori nei campi da un elenco di database in base ai criteri di selezione. Perché vorresti farlo? Chissà. La funzione utilizza la sintassi = DPRODUCT (database, campo, criteri) in cui il database è un riferimento all'intervallo alla tabella di Excel che contiene il valore desiderato ...

Scelta dell'editore

Programmazione con Java: riutilizzo dei nomi nella tua app per Android - dummies

Programmazione con Java: riutilizzo dei nomi nella tua app per Android - dummies

Ci sono un paio di cose a cui vuoi pensare quando riutilizzi i nomi nella tua app per Android. È possibile dichiarare due variabili Java - bag1 e bag2 - per fare riferimento a due diversi oggetti BagOfCheese. Va bene. Ma a volte, avere solo una variabile e riutilizzarla per il secondo oggetto funziona altrettanto bene, ...

Java: Mettere a frutto l'uso della classe - dummies

Java: Mettere a frutto l'uso della classe - dummies

La classe Employee nell'elenco non ha alcun metodo principale , quindi non c'è un punto di partenza per l'esecuzione del codice. Per risolvere questo problema, il programmatore scrive un programma separato con un metodo principale e utilizza tale programma per creare istanze Employee. Questo elenco di codici mostra una classe con un metodo principale - uno che inserisce il ...

Classi wrapper java - dummies

Classi wrapper java - dummies

La differenza tra tipi primitivi e tipi di riferimento è una delle funzionalità più controverse di Java e gli sviluppatori si lamentano spesso sulle differenze tra valori primitivi e valori di riferimento. Ogni tipo primitivo viene cotto nella lingua. Java ha otto tipi primitivi. Ogni tipo di riferimento è una classe o un'interfaccia. È possibile definire il proprio ...