Operatori in Excel VBA

Sommario:

Anonim

I segni e le parole chiave che usiamo per operare variabili in VBA sono chiamati operatori VBA. Ad esempio, nelle righe sotto le righe =, +, >, & sono operatori.

sub Examp() a= 12 b= 10 c= a+b debug.print "La somma di a e b è" & c end sub 

Esistono cinque tipi di operatori in qualsiasi linguaggio di programmazione, quindi in VBA
1. Operatore di assegnazione
2. Operatore aritmetico
3. Operatore di confronto
4. Operatore logico
5. Operatore di concatenazione

Diamo un'occhiata a ciascun tipo di operatore in Excel VBA.

1. Operatore di assegnazione (=)

Questo è il primo operatore che utilizzerai in qualsiasi linguaggio di programmazione. In VBA, viene utilizzato per assegnare valori alle variabili. È "=" (uguale a).

Usiamo questo operatore per assegnare valori alle variabili in excel VBA. Viene anche utilizzato come operatore di confronto in VBA. Ne parleremo più avanti in questo tutorial.

Un semplice esempio è

sub test() a=10 Range("A1").value=a end sub 

Nell'esempio sopra, usiamo prima l'operatore di assegnazione "=" per assegnare il valore alla variabile "a" e poi usiamo l'operatore "=" per assegnare il valore di "a" al valore di Range ("A1").

2. Operatori aritmetici

Gli operatori aritmetici sono gli stessi operatori che usiamo fin dall'infanzia per fare semplici calcoli. In Excel VBA, questi operatori vengono utilizzati per eseguire calcoli su variabili e numeri. Loro sono:

(+) Addizione aritmetica:Questo operatore viene utilizzato per aggiungere due o più numeri o valori di due o più variabili. Le righe sottostanti riassumono i valori delle due variabili e li stampano sulla cella "A1".

Sub Test() a=10 b=12 Intervallo("A1").valore=a+b Fine sottotitolo

A1 avrà 22. Questo operatore funziona anche come operatore di concatenazione. Se entrambi, aeb avranno i valori stringa, l'operatore + funzionerà come operatore di concatenazione. Vedremo come, più avanti nell'articolo.

(-) Sottrazione aritmetica:Questo operatore viene utilizzato per sottrarre un valore da un altro valore di variabili. La riga sottostante sottrae il valore di a da b e lo stampa nella cella "A1".

Sub Test() a=10 b=12 Intervallo("A1").valore=b-a Fine sottotitolo

A1 sul foglio avrà 2.

(*) Moltiplicazione aritmetica:Questo operatore viene utilizzato per moltiplicare o ottenere il prodotto di due o più numeri o valori di due o più variabili. Le righe sottostanti moltiplicano i valori delle due variabili e lo stampano sulla cella "A1".

Sub Test() a=10 b=12 Intervallo("A1").valore=a*b Fine sottotitolo

La cella A1 avrà valore 120.

(/) Divisione aritmetica:Questo operatore viene utilizzato dividendo un valore da un altro. La riga sottostante divide il valore b per la variabile a e lo stampa sulla cella "A1".

Sub Test() a=10 b=12 Intervallo("A1").valore=b/a Fine sottotitolo

La cella A1 avrà il valore 1.2.

(Mod) Operatore aritmetico del resto in VBA: Mentre la maggior parte dei PL usa la % (modulo) per ottenere il resto, in VBA usiamo la parola chiave Mod. Questo operatore viene utilizzato per ottenere il promemoria dopo aver diviso un valore da un altro. La riga sottostante divide il valore b per la variabile a e stampa il valore del promemoria nella cella A1.

Sub Test() a=10 b=4 Intervallo("A1").valore=a Mod b Fine sottotitolo 

La cella A1 avrà valore 2.

(^) Esponenziale aritmetico:Questo operatore viene utilizzato per ottenere l'esponente di un valore in un altro. Le righe sotto ci danno il valore di 3 per l'esponenziale 4.

Sub Test() a=3 b=4 Intervallo("A1").valore=un^b Fine sottotitolo

La cella A1 avrà il valore 81 (3x3x3x3).

Questi operatori in VBA seguono la regola BODMAS. Ci sono solo 6 operatori aritmetici in VBA. Ci sono alcuni operatori che agiscono come due tipi di operatori come +. Imparerai a conoscerli durante questo tutorial.

3. Operatori di confronto

Quando vogliamo confrontare due valori in VBA, usiamo gli operatori di confronto. Il risultato dell'operatore di confronto è sempre booleano. Se l'affermazione è vera, il risultato è TRUE. Se l'istruzione è falsa, il valore è Falso. Questi operatori sono spesso utilizzati nel processo decisionale in VBA. Vediamo quali sono:

(=) È uguale a:Sì, il segno = (uguale a) viene utilizzato anche come operatore di confronto in VBA. Quando vogliamo verificare se le due variabili sono uguali o meno, utilizziamo questo operatore di confronto.

Sub Test() a=3 b=4 Se a=b allora 'Restituirà false MsgBox "A e b sono uguali." 'questo non verrà eseguito. Else MsgBox "A e b non sono uguali" End IF End Sub

Nell'esempio sopra, usiamo l'istruzione If e controlliamo se i valori di aeb sono uguali. Chiaramente non lo sono. Quindi, viene stampata l'istruzione Else.

Puoi verificarlo semplicemente usando l'istruzione.

a=3 b=4 debug.print a=b

Questo stamperà False nella finestra immediata.

(<) Meno di:Questo viene utilizzato per verificare se il valore di sinistra è inferiore al valore di destra o meno.

Sub Test() a=3 b=4 Se a

Nell'esempio sopra, controlliamo se il valore di a è minore di b. Poiché questo è True, l'istruzione if viene eseguita e Else no.

Puoi verificarlo semplicemente usando l'istruzione.

a=3 b=4 debug.print a<>

Questo stamperà True nella finestra immediata.

(<=) Minore di o uguale a:Viene utilizzato per verificare se il valore di sinistra è inferiore o uguale al valore di destra o meno.

Sub Test() a=4 b=4 Se a<=b allora 'Restituirà True MsgBox "La a è minore o uguale a b." 'questo sarà eseguito. Else MsgBox "La a non è uguale o minore di b." 'questo non verrà eseguito. Fine SE Fine Sotto

Nell'esempio sopra, controlliamo se il valore di a è minore di b. Poiché questo è True, l'istruzione If viene eseguita e Else no.

Puoi verificarlo semplicemente usando l'istruzione.

a=4 b=4 debug.print a<-b

Questo stamperà True nella finestra immediata.

(>) Maggiore di:Questo viene utilizzato per verificare se il valore di sinistra è maggiore del valore di destra o meno.

Sub Test() a=3 b=4 Se a>b allora 'Restituirà False MsgBox "La a è maggiore di b." 'Questo non verrà eseguito. Else MsgBox "La a non è maggiore di b." 'Questo sarà eseguito. Fine SE Fine Sotto

Nell'esempio sopra, controlliamo se il valore di a è maggiore di b. Poiché questo è False, l'istruzione if non verrà eseguita e Else sì.

Puoi verificarlo semplicemente usando l'istruzione.

a=3 b=4 debug.print a>b

Questo stamperà False nella finestra immediata.

(>=) Maggiore di:Viene utilizzato per verificare se il valore di sinistra è maggiore o uguale al valore di destra o meno.

Sub Test() a=3 b=4 Se a>=b allora 'Restituirà False MsgBox "La a è maggiore o uguale a b." 'Questo non verrà eseguito. Else MsgBox "La a non è maggiore o uguale a b." 'Questo sarà eseguito. Finisci se

Nell'esempio sopra, controlliamo se il valore di a è maggiore o uguale a b. Poiché questo è False, l'istruzione if non verrà eseguita e Else sì.

Puoi verificarlo semplicemente usando l'istruzione.

a=3 b=4 debug.print a>=b

Questo stamperà False nella finestra immediata.

() Non uguale a:Viene utilizzato per verificare se il valore di sinistra non è uguale al valore di destra.

Sub Test() a=3 b=4 Se ab allora 'Restituirà True MsgBox "La a non è uguale a b", 'Verrà eseguito. Else MsgBox "A e b sono uguali." 'Questo non verrà eseguito. Fine SE Fine Sotto

Nell'esempio sopra, controlliamo se il valore di a è non uguale a B. Poiché questo è True, l'istruzione If verrà eseguita e Else no.

Puoi verificarlo semplicemente usando l'istruzione.

a=3 b=4 debug.print ab

Questo stamperà True nella finestra immediata.

I sei operatori precedenti sono chiamati operatori di confronto poiché li usiamo per confrontare due valori o variabili. Li utilizzerai molto in VBA per prendere decisioni in VBA.

4. Operatori logici

Gli operatori logici vengono utilizzati per eseguire operazioni logiche su una o più variabili. Il risultato di tali operazioni risulta sempre VERO o FALSO. Gli operatori logici spesso (non sempre) vengono utilizzati per verificare più di una condizione.

Di seguito sono riportati gli operatori logici che utilizziamo in VBA:

Operatore VBA AND (E o *): L'operatore VBA AND viene utilizzato per garantire che le condizioni a sinistra e a destra siano vere. Se una qualsiasi delle condizioni è Falsa, l'intera istruzione risulterà Falsa. Usiamo la parola chiave And o il segno * (asterisco) per le operazioni AND.

Controlla la seguente dichiarazione:

Sottotest() a = 10 b = 20 Se a < 15 E b < 15 Allora MsgBox "a e b sono entrambi inferiori a 15." 'Questo non viene eseguito. Else MsgBox "A o b è maggiore o uguale a 15." 'Questo viene eseguito. End If End Sub 

Quando eseguiamo il frammento di cui sopra, la seconda istruzione if non viene eseguita. Perché la prima affermazione a sinistra è vera, ma l'affermazione a destra è Falsa. Quindi l'intera istruzione restituisce False.

Nella maggior parte delle lingue, il simbolo & viene utilizzato come operatore AND ma non in VBA. In VBA puoi usare l'operatore di moltiplicazione * (asterisco) come operatore AND per assicurarti che entrambe le condizioni siano vere.

Nell'esempio sopra, puoi usare l'istruzione if di seguito per fare lo stesso.

Se (a < 15) * (b < 15) Allora

È necessario utilizzare le parentesi per separare le istruzioni condizionali. In caso contrario, le dichiarazioni seguiranno la regola BODMAS e il risultato sarà impreciso.

Q1: Quale sarà l'output della seguente dichiarazione? Fatemi sapere nella sezione commenti qui sotto:

debug.print a10 AND a=(b/2) AND a<>

Quando il valore di a è 15 e b è 30. Scrivi nella sezione commenti qui sotto.

Operatore VBA OR (o o +): L'operatore OR viene utilizzato quando vogliamo assicurarci che la condizione Left sia TRUE o la condizione Right sia TRUE. Se una delle due condizioni è vera, il risultato sarà vero. Usiamo la parola chiave OR tra due istruzioni booleane. È inoltre possibile utilizzare il segno + (più) per l'operazione OR. Assicurati solo di usare le parentesi correttamente per rendere chiare le affermazioni mentre usi il segno +.

Esamina il codice seguente:

Sottotest() a = 10 b = 20 Se a < 15 oppure b < 15 Allora MsgBox "A o b è minore di 15." 'Questo viene eseguito. Else MsgBox "Né a né b è inferiore a 15." 'Questo non viene eseguito. End If End Sub

Quando eseguiamo il codice sopra, viene visualizzato il primo messaggio e il secondo messaggio viene saltato. Perché a è minore di 15 e b no. È necessaria solo una condizione per essere True con l'operatore OR per ottenere l'output come vero.

Scrivi la dichiarazione come:

Se (a < 15) + (b < 15) Allora

Q2: Quale sarà l'output della seguente dichiarazione? Fatemi sapere nella sezione commenti qui sotto:

debug.print a10 Oppure a=(b/2) o a<>

Quando il valore di a è 10 e b è 5. Annota nella sezione commenti qui sotto.

Operatore VBA NOT (non): L'operatore Not viene utilizzato per invertire il valore booleano. In altre parole, l'istruzione con l'operatore Not restituisce True solo se l'istruzione prima di essa è False. Ad esempio, se utilizzi la parola chiave Not prima di un'istruzione True, risulterà False e viceversa. In VBA, usiamo il Non parola chiave per verificare se qualcosa non è vero o falso (?).

Sottotest() a = 10 b = 10 Se No a = b Allora MsgBox "aeb non sono uguali." Else MsgBox "a e b sono entrambi uguali."'Questo viene eseguito End If End Sub

Nel codice sopra, istruzioneNon a = brestituirà falso. Inizialmente, a=b è vero, ma poiché abbiamo usato Not prima di esso, il risultato è invertito e l'istruzione diventa False. Nell'esempio sopra, abbiamo usato le uniche istruzioni prima di esso. Puoi avere tutte le istruzioni che vuoi prima dell'operatore Not. Basta racchiuderli tra parentesi.

D3: Quale sarà l'output della seguente dichiarazione? Fatemi sapere nella sezione commenti qui sotto:

debug.print a10 Oppure no (a=(b/2) * a<>

Quando il valore di a è 10 e b è 5. Annota nella sezione commenti qui sotto.

5. Operatori di concatenazione ( & o +)

Questi operatori vengono utilizzati per concatenare le stringhe. Il simbolo & viene utilizzato per concatenare i testi. È l'operatore consigliato per concatenare le stringhe. Tuttavia, puoi anche usare il segno + per concatenare.

Il segno più concatena solo due variabili quando entrambe sono stringhe. Se una delle stringhe non è una stringa, il segno + funzionerà come operatore di addizione.

Vedi il codice qui sotto:

Sub test() a="Exceltip" b=" è il numero " c= 1 d= 2 Debug.print a & b & c 'questo stamperà "Exceltip è il numero 1" Debug.print a + b & c & d ' questo stamperà "Exceltip è il numero 12 'Debug.print a + b + c 'questo sarà un errore. End Sub

Nel codice sopra, le prime due righe funzioneranno perfettamente. La terza riga incorrerà in un errore perché stiamo cercando di aggiungere testo con numeri. Per concatenare i numeri usiamo sempre & (amp).

Operatori multifunzionali in VBA

Attraverso gli esempi sopra, devi aver imparato che ci sono molti operatori che lavorano in modo diverso in diverse situazioni.

Il segno + funziona come operatore di addizione mentre si lavora con i numeri. Mentre si lavora con valori booleani, il segno più funziona come operatore Or in VBA. Se utilizzato con valori stringa, l'operatore più funziona come operatore di concatenazione. Le righe seguenti sono valide:

Debug.Print 10+20 ' stampa 30. + funziona come operatore di addizione. Debug.Print (1020) ' stampa True. + funziona come operatore Or. Debug.Print "10" + "20" 'Stampa 1020. Il segno + funziona come operatore di concatenazione. 

Il segno asterisco (*) funziona come operatore di moltiplicazione quando gli operandi sono numerici. Quando gli operandi sono booleani, l'asterisco funziona come Operatore And.

Le seguenti righe di codice funzionano perfettamente.

Debug.Print 10*20 ' stampa 200. Il * funziona come operatore di moltiplicazione. Debug.Print (1020) ' stampa False. Il segno + funziona come operatore And. 

Quindi sì ragazzi, tutto questo riguarda gli operatori in VBA. Spero sia stato utile. Se hai dei dubbi sugli operatori in VBA, chiedi nella sezione commenti qui sotto.

L'istruzione If ElseIf nell'istruzione VBA|In If ElseIf, la condizione successiva viene verificata solo quando cade la condizione precedente. Quando viene soddisfatta una condizione, il codice in quel blocco viene eseguito e il controllo esce dal blocco If.

Ambito variabile VBA di Excel | Anche VBA ha identificatori di ambito. Questi identificatori di ambito possono essere utilizzati per impostare la visibilità/l'ambito di una variabile in Excel VBA.

Istruzione VBA Select Case | Le dichiarazioni Select Case sono utili quando si hanno troppe condizioni da verificare. Sono eccellenti sostituzioni di più istruzioni If ElseIf.

Utilizzo di Loop in VBA in Microsoft Excel | I loop in VBA ci consentono di svolgere un'attività simile più e più volte senza ripetizione del codice. Esistono 3 tipi di loop in Excel VBA.

ByRef e ByRef Arguments |Quando un argomento viene passato come argomento ByRef a un sub o a una funzione diversa, viene inviato il riferimento della variabile effettiva. Qualsiasi modifica apportata alla copia della variabile si rifletterà nell'argomento originale.

Visualizza un messaggio sulla barra di stato VBA di Excel La barra di stato in Excel può essere utilizzata come monitor del codice. Quando il tuo codice VBA è lungo e svolgi diverse attività utilizzando VBA, spesso disabiliti l'aggiornamento dello schermo in modo da non vedere lo sfarfallio dello schermo

Disattiva i messaggi di avviso utilizzando VBA in Microsoft Excel 2016|Questo codice non solo disabilita gli avvisi VBA, ma aumenta anche l'efficienza temporale del codice. Vediamo come.

Articoli popolari:

50 scorciatoie di Excel per aumentare la produttività | Diventa più veloce nel tuo compito. Queste 50 scorciatoie ti faranno lavorare ancora più velocemente su Excel.

La funzione CERCA.VERT in Excel | Questa è una delle funzioni più utilizzate e popolari di Excel che viene utilizzata per cercare il valore da diversi intervalli e fogli.

CONTA.SE in Excel 2016 | Conta i valori con le condizioni usando questa fantastica funzione. Non è necessario filtrare i dati per contare un valore specifico. La funzione Countif è essenziale per preparare la tua dashboard.

Come utilizzare la funzione SOMMA.SE in Excel | Questa è un'altra funzione essenziale della dashboard. Questo ti aiuta a riassumere i valori su condizioni specifiche.