VBA varat salīdzināt divas virknes, izmantojot StrComp funkciju. Šajā apmācībā jūs uzzināsit, kā izmantot šo funkciju ar dažādām salīdzināšanas metodēm.
Ja vēlaties uzzināt, kā izmantot VBA līdzīgu operatoru, lai salīdzinātu neprecīzas atbilstības, noklikšķiniet šeit: VBA patīk operators.
Ja vēlaties uzzināt, kā izmantot salīdzināšanas operatorus, noklikšķiniet šeit: VBA salīdzināšanas operatori - nav vienādi ar citiem
Funkcijas StrComp izmantošana divu virkņu salīdzināšanai
The StrComp funkcija kā argumentus ņem divas virknes un salīdzināšanas metodi. Ir 3 salīdzināšanas metodes:
- vbBinaryCompare - salīdzina divas binārās virknes (reģistrjutīgas);
- vbTextCompare - salīdzina divas virknes kā tekstus (reģistrjutīgas);
- vbDatabaseCompare - šī metode ir pieejama tikai Microsoft Access, nevis VBA.
Pēc noklusējuma funkcija izmanto bināro metodi. Ja izlaidīsim šo argumentu, funkcija būs reģistrjutīga.
Funkcija atgriež šādus rezultātus:
- 0 - ja virknes ir vienādas;
- -1 - ja virkne 1 ir mazāka par virkni 2;
- 1 - ja virkne 1 ir lielāka par virkni 2;
- Nulle - ja viena no virknēm ir tukša.
Šeit ir koda piemērs:
123 | Dim intResult kā vesels skaitlisintResult = StrComp ("Dators", "Dators") |
Šajā piemērā mēs vēlamies pārbaudīt, vai virknes “Dators” un “Dators” ir vienādi, izmantojot noklusējuma salīdzināšanas metodi (bināro). Funkcijas rezultāts ir intResult mainīgais. Kā redzat attēlā, abas virknes ir vienādas, tāpēc intResult ir vērtība 0.
Attēls 1. Izmantojot funkciju StrComp ar bināro metodi VBA
Funkcijas StrComp izmantošana ar bināro un teksta metodi
Tagad jūs redzēsit atšķirību starp binārās un teksta metodes izmantošanu. Binārajai metodei katrai rakstzīmei ir binārais skaitlis, tāpēc lielie un mazie burti ir dažādas šīs metodes rakstzīmes. No otras puses, teksta metode “S” un “s” uzskata par vienādiem burtiem. Ja vēlaties, lai funkcija nejustu reģistru, trešais arguments ir jāiestata uz vbBinaryCompare. Šeit ir kods:
123456 | Dim intResult1 Kā vesels skaitlisDim intResult2 kā vesels skaitlisintResult1 = StrComp ("Dators", "CompuTer")intResult2 = StrComp ("Dators", "CompuTer", vbTextCompare) |
Mēs vēlamies salīdzināt virknes “Dators” un "Komputeris", izmantojot abas metodes.
Mainīgajā intResult1, mēs iegūsim vērtību ar bināro metodi, savukārt intResult2 iegūs vērtību ar teksta metodi. Jūs varat redzēt šo divu mainīgo vērtības:
Attēls 2. StrComp funkcijas izmantošana ar bināro un tekstuālo metodi
Vērtība intResult1 ir 1, kas nozīmē, ka binārajai metodei ir atšķirīgas divas virknes. Teksta metodei šīs divas virknes ir vienādas, tāpēc vērtība intResult2 ir 0.