Porovnávacie struny VBA - StrComp

Vo VBA môžete porovnávať dva reťazce pomocou StrComp funkciu. V tomto návode sa naučíte používať túto funkciu pri rôznych porovnávacích metódach.

Ak sa chcete dozvedieť, ako používať operátor VBA na porovnávanie nepresných zápasov, kliknite sem: Operátor ako VBA.

Ak sa chcete dozvedieť, ako používať porovnávacie operátory, kliknite sem: Porovnávacie operátory VBA - nerovná sa a ďalšie

Použitie funkcie StrComp na porovnanie dvoch reťazcov

The StrComp funkcia berie ako argumenty dva reťazce a metódu porovnávania. Existujú 3 spôsoby porovnania:

  • vbBinaryCompare - porovnáva dva reťazce binárne (rozlišujú sa malé a veľké písmená);
  • vbTextCompare - porovnáva dva reťazce ako texty (nerozlišuje malé a veľké písmená);
  • vbDatabaseCompare - táto metóda je k dispozícii iba v programe Microsoft Access a nie vo VBA.

Štandardne funkcia používa binárnu metódu. Ak tento argument vynecháme, funkcia bude rozlišovať malé a veľké písmená.

Funkcia vracia nasledujúce výsledky:

  • 0 - ak sú reťazce rovnaké;
  • -1 - ak je reťazec 1 menší ako reťazec 2;
  • 1 - ak je reťazec 1 väčší ako reťazec 2;
  • Null - ak je jeden z reťazcov prázdny.

Tu je ukážkový kód:

123 Dim intResult As IntegerintResult = StrComp („počítač“, „počítač“)

V tomto prípade chceme skontrolovať, či ide o reťazce "Počítač" a "Počítač" sú rovnaké, pomocou predvolenej metódy porovnávania (binárne). Výsledok funkcie je v intResult premenná. Ako môžete vidieť na obrázku, obidva reťazce sú rovnaké, preto intResult má hodnotu 0.

Obrázok 1. Použitie funkcie StrComp s binárnou metódou vo VBA

Použitie funkcie StrComp s binárnou a textovou metódou

Teraz uvidíte rozdiel medzi použitím binárnej a textovej metódy. Binárna metóda má pre každý znak binárne číslo, takže veľké a malé písmená sú v tejto metóde odlišné znaky. Na druhej strane textová metóda považuje „S“ a „s“ za rovnaké písmená. Ak chcete, aby funkcia nerozlišovala malé a veľké písmená, musíte nastaviť tretí argument na vbBinaryCompare. Tu je kód:

123456 Dim intResult1 ako celé čísloDim intResult2 ako celé číslointResult1 = StrComp („počítač“, „počítač“)intResult2 = StrComp („počítač“, „CompuTer“, vbTextCompare)

Chceme porovnať reťazce "Počítač" a „CompuTer“, pomocou oboch metód.

V premennej intResult1, získame hodnotu pomocou binárnej metódy, zatiaľ čo intResult2 získa hodnotu textovou metódou. Môžete vidieť hodnoty týchto dvoch premenných:

Obrázok 2. Použitie funkcie StrComp s binárnou a textovou metódou

Hodnota intResult1 je 1, čo znamená, že dva reťazce sú pre binárnu metódu odlišné. Pre textovú metódu sú tieto dva reťazce rovnaké, takže hodnota intResult2 je 0.

wave wave wave wave wave