În VBA, puteți compara două șiruri folosind StrComp funcţie. În acest tutorial, veți învăța cum să utilizați această funcție cu diferite metode de comparație.
Dacă doriți să aflați cum să utilizați operatorul VBA ca operator pentru a compara potrivirile inexacte, faceți clic aici: VBA ca operator.
Dacă doriți să aflați cum să utilizați operatori de comparație, faceți clic aici: Operatori de comparație VBA - Nu este egal cu și mai mult
Utilizarea funcției StrComp pentru a compara două șiruri
The StrComp funcția ia două șiruri și metoda de comparație ca argumente. Există 3 metode de comparație:
- vbBinaryCompare - compară două șiruri binare (sensibile la majuscule);
- vbTextCompare - compară două șiruri ca texte (fără majuscule);
- vbDatabaseCompare - această metodă este disponibilă numai în Microsoft Access și nu în VBA.
În mod implicit, funcția utilizează metoda binară. Dacă omitem acest argument, funcția va fi sensibilă la majuscule.
Funcția returnează următoarele rezultate:
- 0 - dacă șirurile sunt egale;
- -1 - dacă șirul 1 este mai mic decât șirul 2;
- 1 - dacă șirul 1 este mai mare decât șirul 2;
- Nul - dacă una dintre șiruri este goală.
Iată exemplul de cod:
123 | Dim intResult As IntegerintResult = StrComp ("Computer", "Computer") |
În acest exemplu, vrem să verificăm dacă șirurile "Calculator" și "Calculator" sunt egale, folosind metoda de comparație implicită (binară). Rezultatul funcției este în intResultatul variabil. După cum puteți vedea în imagine, ambele șiruri sunt egale, prin urmare intResultatul are valoarea 0.
Imagine 1. Utilizarea funcției StrComp cu metoda binară în VBA
Utilizarea funcției StrComp cu metodă binară și textuală
Acum veți vedea diferența dintre utilizarea metodei binare și a textului. Metoda binară are un număr binar pentru fiecare caracter, deci majusculele și minusculele sunt caractere diferite în această metodă. Pe de altă parte, metoda textuală consideră „S” și „s” ca aceleași litere. Dacă doriți să faceți funcția nesensibilă la majuscule, trebuie să setați al treilea argument la vbBinaryCompare. Iată codul:
123456 | Dim intResult1 As IntegerDim intResult2 As IntegerintResult1 = StrComp ("Computer", "CompuTer")intResult2 = StrComp ("Computer", "CompuTer", vbTextCompare) |
Vrem să comparăm șirurile "Calculator" și "Calculator", folosind ambele metode.
În variabilă intResult1, vom obține valoarea cu metoda binară, în timp ce intResult2 va obține valoarea cu metoda textuală. Puteți vedea valorile acestor două variabile:
Imagine 2. Utilizarea funcției StrComp cu metodă binară și textuală
Valoarea a intResult1 este 1, ceea ce înseamnă că două șiruri sunt diferite pentru metoda binară. Pentru metoda textuală, aceste două șiruri sunt egale, deci valoarea lui intResult2 este 0.