VBA consente di utilizzare gli operatori logici e, o, Non, Xor per confrontare i valori. Gli operatori sono considerati "booleani", il che significa che restituiscono True o False come risultato.
Se vuoi imparare a confrontare le stringhe, fai clic qui: VBA Confronta stringhe - StrComp
Se vuoi imparare a usare gli operatori di confronto, fai clic qui: Operatori di confronto VBA - Non uguale a e altro
Utilizzo dell'operatore logico And
Il e operatore logico confronta due o più condizioni. Se tutte le condizioni sono vere, l'operatore restituirà True. Se almeno una delle condizioni non è vera, l'operatore restituirà False. Ecco un esempio:
123456789101112 | Dim intA As IntegerDim intB As IntegerDim blnResult As BooleanintA = 5intB = 5Se intA = 5 E intB = 5 AllorablnRisultato = VeroAltroblnResult = FalseFinisci se |
In questo esempio, vogliamo verificare se entrambi intA e intB sono uguali a 5. Se questo è vero, il valore di Boolean blnRisultato sarà Vero, altrimenti sarà Falso.
Innanzitutto, impostiamo i valori di intA e intB a 5:
12 | intA = 5intB = 5 |
Successivamente, usiamo il e operatore nell'istruzione If per verificare se i valori sono uguali a 5:
12345 | Se intA = 5 E intB = 5 AllorablnRisultato = VeroAltroblnResult = FalseFinisci se |
Poiché entrambe le variabili sono uguali a 5, il blnRisultato restituisce Vero:
Immagine 1. Utilizzo dell'operatore logico And in VBA
Utilizzo dell'operatore logico O
Il o operatore logico confronta due o più condizioni. Se almeno una delle condizioni è vera, restituirà True. Se nessuna delle condizioni è vera, l'operatore restituirà False. Ecco il codice per l'esempio:
123456789101112 | Dim intA As IntegerDim intB As IntegerDim blnResult As BooleanintA = 5intB = 10Se intA = 5 Oppure intB = 5 AllorablnRisultato = VeroAltroblnResult = FalseFinisci se |
In questo esempio, vogliamo verificare se entrambi intA è uguale a 5. o intB è uguale a 10. Se una di queste condizioni è vera, il valore di Boolean blnRisultato sarà Vero, altrimenti sarà Falso.
Per prima cosa, impostiamo il valore di intA a 5 e intB a 10:
12 | intA = 5intB = 10 |
Successivamente, usiamo il o operatore nell'istruzione If per verificare se uno dei valori è uguale a 5:
12345 | Se intA = 5 Oppure intB = 5 AllorablnRisultato = VeroAltroblnResult = FalseFinisci se |
Come intA il valore è 5, il blnRisultato restituisce Vero:
Immagine 2. Utilizzo dell'operatore logico Or in VBA
Utilizzo dell'operatore non logico
Il Non l'operatore logico verifica una o più condizioni. Se le condizioni sono vere, l'operatore restituisce False. In caso contrario, restituisce True. Ecco il codice per l'esempio:
12345678910 | Dim intA As IntegerDim blnResult As BooleanintA = 5Se No (intA = 6) AllorablnRisultato = VeroAltroblnResult = FalseFinisci se |
In questo esempio, vogliamo verificare se il valore di intA non è uguale a 6. Se intA è diverso da 6, il valore di Boolean blnRisultato sarà Vero, altrimenti sarà Falso.
Per prima cosa, impostiamo il valore di intA a 5:
1 | intA = 5 |
Successivamente, utilizziamo l'operatore Not nell'istruzione If per verificare se il valore di intA è diverso da 6:
12345 | Se No (intA = 6) AllorablnRisultato = VeroAltroblnResult = FalseFinisci se |
Come intA il valore è 5, il blnRisultato restituisce Vero:
Immagine 3. Utilizzo dell'operatore Non logico in VBA
Utilizzo dell'operatore logico Xor
Il Xor operatore logico confronta due o più condizioni. Se esattamente una delle condizioni è vera, restituirà True. Se nessuna delle condizioni è vera, o più di una sono vere, restituirà False. Ecco il codice per l'esempio:
123456789101112 | Dim intA As IntegerDim intB As IntegerDim blnResult As BooleanintA = 5intB = 10Se intA = 5 Xor intB = 5 AllorablnRisultato = VeroAltroblnResult = FalseFinisci se |
In questo esempio, vogliamo verificare se esattamente uno dei valori (intA o IntB) è uguale a 5. Se solo una condizione è vera, il valore di Boolean blnRisultato sarà Vero, altrimenti sarà Falso.
Per prima cosa, impostiamo il valore di intA a 5 e intB a 10:
12 | intA = 5intB = 10 |
Successivamente, usiamo il o operatore nell'istruzione If per verificare se uno dei valori è uguale a 5:
12345 | Se intA = 5 Xor intB = 5 AllorablnRisultato = VeroAltroblnResult = FalseFinisci se |
Come intA il valore è 5 e intB è 10, il blnRisultato restituisce Vero:
Immagine 4. Utilizzo dell'operatore logico Xor in VBA
è operatore
L'operatore Is verifica se due variabili oggetto memorizzano lo stesso oggetto.
Diamo un'occhiata a un esempio. Qui assegneremo due fogli di lavoro agli oggetti del foglio di lavoro rng1 e rng2, verificando se i due oggetti del foglio di lavoro memorizzano lo stesso foglio di lavoro:
12345678910111213 | Sotto ConfrontaOggetti()Dim ws1 come foglio di lavoro, ws2 come foglio di lavoroImposta ws1 = Fogli("Foglio1")Imposta ws2 = Fogli("Foglio2")Se ws1 è ws2 alloraMsgBox "Stesso WS"AltroMsgBox "WS diversi"Finisci seFine sottotitolo |
Ovviamente gli oggetti del foglio di lavoro non sono gli stessi, quindi viene restituito "Different WSs".
Mi piace operatore
L'operatore Like può confrontare due stringhe per corrispondenze inesatte. Questo esempio verificherà se una stringa inizia con "Mr."
1234567891011121314 | Sub Mi piaceDemo()Dim strName As StringDim blnResult As BooleanstrName = "Signor Michael James"Se strName Like "Mr*" ThenblnRisultato = VeroAltroblnResult = FalseFinisci seFine sottotitolo |