Operatori logici VBA - OR, AND, XOR, NOT, IS e LIKE

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

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave