VBA StrComp

Funzione Excel VBA StrComp

VBA StrComp è una funzione incorporata utilizzata per confrontare se i due valori di stringa sono uguali o meno. Tuttavia, i risultati non sono impostati come VERO o FALSO come nel foglio di lavoro, piuttosto è diverso.

Prima di esaminare i risultati, lascia che ti mostri prima la sintassi della funzione StrComp.

  • Stringa 1: Stringa 1 è la prima stringa o valore che stiamo confrontando.
  • Stringa 2: Stringa 2 è la seconda stringa o valore che stiamo confrontando con la Stringa 1 .
  • Confronta: qui possiamo fornire tre opzioni.
      • 0 = Confronto binario. Esegue calcoli con distinzione tra maiuscole e minuscole. Ad esempio "Hello" non è uguale a "HELLO" perché entrambe le parole sono diverse. Questo è il valore predefinito se ignori questo parametro. vbBinaryCompare
      • 1 = Confronta testo. Questa opzione esegue i calcoli senza distinzione tra maiuscole e minuscole. Ad esempio "Hello" è uguale all'evento "HELLO" sebbene entrambi i casi delle parole siano diversi. vbTextCompare
      • 2 = Confronta accesso. Questo esegue il confronto del database.

Risultati della funzione di confronto tra stringhe (StrComp)

Come ho detto quando confrontiamo due valori nel foglio di lavoro otteniamo il risultato come VERO o FALSO. Ma con VBA i risultati della funzione di confronto delle stringhe non sono gli stessi.

  • Otteniamo zero (0) quando String 1 è uguale a String 2.
  • Otteniamo un (1) quando lo String 1 valore è maggiore della stringa 2 Valore .
  • Otteniamo meno uno (-1) quando il valore di String 1 è minore di String 2
  • Otteniamo NULL quando il valore di String 1 o String 2 è NULL.

Esempi di utilizzo della funzione VBA StrComp

Puoi scaricare questo modello Excel VBA StrComp qui - Modello Excel VBA StrComp

Esempio 1

Cominciamo con un semplice esempio. Ad esempio, confronteremo due valori, ovvero "Excel VBA" e "Excel VBA".

Codice:

 Sub StrComp_Example1 () Dim FirstValue As String 'To Store String 1 value Dim SecondValue As String' To Store String 2 value Dim Result As String 'To Store Result of the StrComp formula FirstValue = "Excel VBA"' Assign the String 1 value SecondValue = "Excel VBA" 'Assegna il valore String 2 Result = StrComp (FirstValue, SecondValue, vbBinaryCompare)' Applica la funzione StrComp MsgBox Result 'Mostra il risultato nella finestra di messaggio End Sub 

Quando eseguo questo codice, otterremo Zero (0) come risultato perché entrambi i valori String 1 e String 2 sono uguali.

Esempio n. 2

Ora cambierò i casi di due parole.

Stringa 1 = Excel Vba

Stringa 2 = Excel VBA

Codice:

 Sub StrComp_Example2 () Dim FirstValue As String 'To Store String 1 value Dim SecondValue As String' To Store String 2 value Dim Result As String 'To Store Result of the StrComp formula FirstValue = "Excel Vba"' Assign the String 1 value SecondValue = "Excel VBA" 'Assegna il valore String 2 Result = StrComp (FirstValue, SecondValue, vbBinaryCompare)' Applica StrComp function MsgBox Result 'Mostra il risultato nella finestra di messaggio End Sub 

Quando eseguo questo codice otterremo 1 perché poiché abbiamo fornito l'argomento Compare come " vbBinaryCompare" , verificherà la presenza di caratteri maiuscoli.

Ora cambierò l' opzione Confronta da " vbBinaryCompare" a " vbTextCompare"

Codice:

 Sub StrComp_Example3 () Dim FirstValue As String 'To Store String 1 value Dim SecondValue As String' To Store String 2 value Dim Result As String 'To Store Result of the StrComp formula FirstValue = "Excel Vba"' Assign the String 1 value SecondValue = "Excel VBA" 'Assegna il valore String 2 Result = StrComp (FirstValue, SecondValue, vbTextCompare)' Applica la funzione StrComp MsgBox Result 'Mostra il risultato nella finestra di messaggio End Sub 

Con questo confronto, otterremo zero (0) perché vbaTextCompare ignora le parole con distinzione tra maiuscole e minuscole.

Esempio n. 3

Case Study di VBA StrComp con IF Condition

Supponi di avere i dati come l'immagine qui sotto.

Dobbiamo confrontare la stringa 1 con la stringa 2 e ottenere il risultato come "Esatto" se entrambi sono uguali, altrimenti il ​​risultato dovrebbe essere "Non esatto".

Il codice seguente farà il lavoro per noi.

Codice:

 Sub StrComp_Example4 () Dim Result As String Dim I As Integer For i = 2 To 6 Result = StrComp (Cells (i, 1) .Value, Cells (i, 2) .Value) If Result = 0 Then Cells (i, 3 ) .Value = "Esatto" Else Cells (i, 3) .Value = "Non esatto" End If Next i End Sub 

Quando eseguo il codice VBA sopra in Excel, otterremo il risultato seguente.

Se si osserva la cella C4, la stringa 1 e la stringa 2 sono uguali ma i caratteri fanno distinzione tra maiuscole e minuscole, quindi il risultato è "Non esatto". Per superare questo problema, dobbiamo fornire il Compare as vbTextCompare.

Di seguito è riportato il codice modificato per ottenere il risultato come "Esatto" per la cella C4.

Codice:

 Sub StrComp_Example4 () Dim Result As String Dim I As Integer For i = 2 To 6 Result = StrComp (Cells (i, 1) .Value, Cells (i, 2) .Value, vbTextCompare) If Result = 0 Then Cells (i , 3) .Value = "Exact" Else Cells (i, 3) .Value = "Not Exact" End If Next i End Sub 

Questo codice restituirà il risultato seguente.