Stringhe di confronto VBA – StrComp

In VBA, puoi confrontare due stringhe usando il StrComp funzione. In questo tutorial imparerai come utilizzare questa funzione con diversi metodi di confronto.

Se vuoi imparare come usare l'operatore VBA like per confrontare le corrispondenze inesatte, clicca qui: VBA Like Operator.

Se vuoi imparare a usare gli operatori di confronto, fai clic qui: Operatori di confronto VBA - Non uguale a e altro

Utilizzo della funzione StrComp per confrontare due stringhe

Il StrComp la funzione accetta due stringhe e il metodo di confronto come argomenti. Esistono 3 metodi di confronto:

  • vbBinaryCompare - confronta due stringhe binarie (case-sensitive);
  • vbTextCompare - confronta due stringhe come testi (senza distinzione tra maiuscole e minuscole);
  • vbDatabaseCompare - questo metodo è disponibile solo in Microsoft Access e non in VBA.

Per impostazione predefinita, la funzione utilizza il metodo binario. Se omettiamo questo argomento, la funzione distinguerà tra maiuscole e minuscole.

La funzione restituisce i seguenti risultati:

  • 0 - se le stringhe sono uguali;
  • -1 - se la stringa 1 è minore della stringa 2;
  • 1 - se la stringa 1 è maggiore della stringa 2;
  • Null - se una delle stringhe è vuota.

Ecco il codice di esempio:

123 Dim intResult As IntegerintResult = StrComp("Computer", "Computer")

In questo esempio, vogliamo verificare se stringhe "Computer" e "Computer" sono uguali, utilizzando il metodo di confronto predefinito (binario). Il risultato della funzione è in intResult variabile. Come puoi vedere in Image, entrambe le stringhe sono uguali, quindi il intResult ha valore 0.

Immagine 1. Utilizzo della funzione StrComp con il metodo binario in VBA

Utilizzo della funzione StrComp con metodo binario e testuale

Ora vedrai la differenza tra l'utilizzo del metodo binario e testuale. Il metodo binario ha un numero binario per ogni carattere, quindi le lettere maiuscole e minuscole sono caratteri diversi in questo metodo. D'altra parte, il metodo testuale considera "S" e "s" come le stesse lettere. Se vuoi rendere la funzione insensibile alle maiuscole, devi impostare il terzo argomento su vbBinaryCompare. Ecco il codice:

123456 Dim intResult1 As IntegerDim intResult2 As IntegerintResult1 = StrComp("Computer", "CompuTer")intResult2 = StrComp("Computer", "CompuTer", vbTextCompare)

Vogliamo confrontare le stringhe "Computer" e "Computer", utilizzando entrambi i metodi.

Nella variabile intResult1, otterremo il valore con il metodo binario, mentre il intResult2 otterrà il valore con il metodo testuale. Puoi vedere i valori di queste due variabili:

Immagine 2. Utilizzo della funzione StrComp con metodo binario e testuale

Il valore di intResult1 è 1, il che significa che due stringhe sono diverse per il metodo binario. Per il metodo testuale, queste due stringhe sono uguali, quindi il valore di intResult2 è 0.

wave wave wave wave wave