Porovnávací řetězce VBA - StrComp

Ve VBA můžete porovnat dva řetězce pomocí StrComp funkce. V tomto kurzu se naučíte používat tuto funkci s různými metodami porovnávání.

Pokud se chcete dozvědět, jak používat operátor jako VBA k porovnávání nepřesných shod, klikněte sem: Operátor jako VBA.

Chcete -li se naučit používat srovnávací operátory, klikněte sem: Srovnávací operátory VBA - nerovná se a další

Porovnání dvou řetězců pomocí funkce StrComp

The StrComp funkce bere dva řetězce a metodu porovnání jako argumenty. Existují 3 způsoby srovnání:

  • vbBinaryCompare - porovnává dva řetězce binární (rozlišují velká a malá písmena);
  • vbTextCompare - porovnává dva řetězce jako texty (nerozlišuje velká a malá písmena);
  • vbDatabaseCompare - tato metoda je k dispozici pouze v aplikaci Microsoft Access, nikoli ve VBA.

Ve výchozím nastavení používá funkce binární metodu. Pokud tento argument vynecháme, funkce bude rozlišovat velká a malá písmena.

Funkce vrací následující výsledky:

  • 0 - pokud jsou řetězce stejné;
  • -1 - pokud je řetězec 1 menší než řetězec 2;
  • 1 - pokud je řetězec 1 větší než řetězec 2;
  • Null - pokud je jeden z řetězců prázdný.

Zde je ukázkový kód:

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

V tomto příkladu chceme zkontrolovat, zda řetězce "Počítač" a "Počítač" jsou stejné, pomocí výchozí metody porovnání (binární). Výsledek funkce je v souboru intVýsledek proměnná. Jak vidíte na obrázku, oba řetězce jsou si rovny, proto intVýsledek má hodnotu 0.

Obrázek 1. Použití funkce StrComp s binární metodou ve VBA

Použití funkce StrComp s binární a textovou metodou

Nyní uvidíte rozdíl mezi použitím binární a textové metody. Binární metoda má pro každý znak binární číslo, takže velká a malá písmena jsou v této metodě různé znaky. Na druhé straně textová metoda považuje „S“ a „s“ za stejná písmena. Pokud chcete, aby funkce nerozlišovala malá a velká písmena, musíte nastavit třetí argument na vbBinaryCompare. Zde je kód:

123456 Dim intResult1 jako celé čísloDim intResult2 jako celé číslointResult1 = StrComp ("Počítač", "CompuTer")intResult2 = StrComp ("Počítač", "CompuTer", vbTextCompare)

Chceme porovnat řetězce "Počítač" a "Počítač", pomocí obou metod.

V proměnné intResult1, získáme hodnotu pomocí binární metody, zatímco intResult2 získá hodnotu textovou metodou. Můžete vidět hodnoty těchto dvou proměnných:

Obrázek 2. Použití funkce StrComp s binární a textovou metodou

Hodnota intResult1 je 1, což znamená, že dva řetězce jsou pro binární metodu odlišné. U textové metody jsou tyto dva řetězce stejné, takže hodnota intResult2 je 0.

wave wave wave wave wave