Funkcja VBA StrComp

W naszej pracy zwykle porównujemy za każdym razem. Te porównania mogą dotyczyć tekstów liczbowych lub dowolnych danych. W przypadku liczb wiemy już, jak przeprowadzamy porównanie. Jest na to wiele metod matematycznych. Ale jak porównać dwa ciągi, jaki wynik otrzymamy. STRCOMP w VBA jest funkcją porównywania ciągów. Porównuje ze sobą dwa ciągi i daje nam wynik. Wynik porównania nie jest jednak prawdziwy ani fałszywy. Istnieją trzy sposoby porównania dwóch ciągów w funkcji STRCOMP. Zanim się w to zagłębimy, zobaczmy składnię tej funkcji.

Składnia StrComp w Excelu VBA

Składnia funkcji VBA StrComp w programie Excel jest następująca:

Łańcuch 1 jest łańcuchem, który będzie porównywany z łańcuchem 2. Metody porównania są opcjonalne dla tej funkcji. Przejdźmy teraz do metod porównawczych w tej funkcji. Istnieją trzy rodzaje metod porównawczych w tej funkcji i są one następujące:

  1. VbBinaryCompare: Jest to domyślnie metoda porównania, jeśli nie wybieramy metody porównania dla naszej funkcji. W tej metodzie porównania rozróżniana jest wielkość liter, co oznacza, że ​​jeśli łańcuch 1 i łańcuch 2 są takie same, ale łańcuch 1 jest pisany małymi literami, a łańcuch 2 jest pisany dużymi literami, oba nie będą podobne. Kod binarny dla „a” i „A” jest inny. Podobnie w przypadku innych postaci. Kody te nazywane są kodami ASCII.
  2. VbTextCompare: W tej metodzie porównania nie jest rozróżniana wielkość liter, więc jeśli łańcuch 1 i łańcuch 2 są równe, ale nie w tym samym przypadku, zastosowane zostaną te metody porównania.
  3. Access Compare: Ta metoda jest używana do porównywania baz danych.

Teraz, kiedy użyjemy tej funkcji, jaki uzyskamy wynik? Za pomocą tej funkcji porównawczej nie uzyskamy wartości prawda ani fałsz. Zamiast tego możemy uzyskać jeden z następujących wyników:

  1. 0, jeśli ciągi znaków są sobie równe.
  2. 1, jeśli ciągi nie pasują do siebie.
  3. -1, jeśli pierwszy ciąg jest mniejszy niż ciąg 2.
  4. NULL, jeśli nie ma wartości zarówno dla ciągu 1, jak i ciągu 2.

Przejdziemy przez kilka różnych przykładów i zobaczymy, jak te porównania ciągów są wykonywane w VBA.

Jak korzystać z funkcji VBA StrComp w programie Excel?

Nauczymy się korzystać z funkcji VBA StrComp na przykładzie w programie Excel.

Możesz pobrać ten szablon Excel VBA StrComp tutaj - Szablon Excel VBA StrComp

Przykład # 1 - VBA StrComp

W naszym przykładzie zastosujmy najpierw metodę porównania binarnego. Weźmiemy dwa ciągi znaków od użytkownika, jeden małymi literami, a drugi dużymi literami i porównamy je.

Krok 1: Z karty programisty, a następnie z Visual Basic, aby dostać się do VB Editor.

Krok 2: Włóż moduł z zakładki wstawiania, aby rozpocząć pisanie kodów w VBA.

Krok 3: Kliknij dwukrotnie moduł na karcie projektu i zadeklaruj podfunkcję w następujący sposób.

Kod:

 Sub Sample () End Sub 

Krok 4: Musimy zdefiniować trzy zmienne jako ciągi, dwie będą przechowywać nasze dane wejściowe, podczas gdy inna zachowa wynik.

Kod:

 Sub Sample () Dim A, B, C As Sub End String Sub 

Krok 5: W zmiennej A i B weź dane wejściowe od użytkownika dla dwóch łańcuchów w następujący sposób.

Kod:

 Sub Sample () Dim A, B, C As String A = InputBox („Enter a String”, „In Smallcase”) B = InputBox („Enter a String”, „In wielkie litery”) End Sub 

Krok 6: Porównaj oba ciągi w zmiennej A i B i zapisz wartość w C za pomocą funkcji STRCOMP i użyj metody porównania jako porównania binarnego.

Kod:

 Sub Sample () Dim A, B, C As String A = InputBox („Enter a String”, „In Smallcase”) B = InputBox („Enter a String”, „In wielkie litery”) C = StrComp (A, B, vbBinaryCompare) End Sub 

Krok 7: Wyświetl dane wyjściowe zapisane w zmiennej C przy użyciu funkcji Msgbox.

Kod:

 Sub Sample () Dim A, B, C As String A = InputBox („Enter a String”, „In Smallcase”) B = InputBox („Enter a String”, „In wielkie litery”) C = StrComp (A, B, vbBinaryCompare) MsgBox C End Sub 

Krok 8: Teraz naciśnij F5, aby wykonać kod i podaj dwa ciągi wejściowe w następujący sposób,

Krok 9: Zobacz wynik końcowy w następujący sposób.

Otrzymujemy 1, ponieważ w porównaniu binarnym oba ciągi nie są równe, ponieważ jeden z nich jest pisany wielkimi literami, podczas gdy drugi jest pisany małymi literami.

Przykład # 2 - VBA StrComp

Teraz zastosujmy inną metodę porównywania, którą jest VbTextCompare i zobaczmy, jakie wyniki uzyskamy dla tych samych danych wejściowych, które podaliśmy powyżej.

Krok 1: W module wstawiliśmy wcześniej, kliknij dwukrotnie na karcie projektu i zadeklaruj podfunkcję, aby rozpocząć pracę z drugim przykładem w następujący sposób.

Kod:

 Sub Sample1 () End Sub 

Krok 2: Musimy zdefiniować trzy zmienne jako ciągi, dwie będą przechowywać nasze dane wejściowe, podczas gdy inna zapisze wynik.

Kod:

 Sub Sample1 () Dim A, B, C As Sub End End Sub 

Krok 3: W zmiennej A i B weź dane wejściowe od użytkownika dla dwóch łańcuchów w następujący sposób.

Kod:

 Sub Próbka 1 () Dim A, B, C Jako ciąg A = InputBox („Wpisz ciąg”, „Małe litery”) B = InputBox („Wprowadź ciąg”, „Wielkie litery”) End Sub 

Krok 4: Porównaj oba ciągi w zmiennej A i B i zapisz wartość w C za pomocą funkcji STRCOMP i użyj metody porównania jako porównania tekstu.

Kod:

 Sub Sample1 () Dim A, B, C As String A = InputBox („Enter a String”, „In Smallcase”) B = InputBox („Enter a String”, „In wielkie litery”) C = StrComp (A, B, vbTextCompare) End Sub 

Krok 5: Wyświetl dane wyjściowe zapisane w zmiennej C przy użyciu funkcji Msgbox.

Kod:

 Sub Sample1 () Dim A, B, C As String A = InputBox („Enter a String”, „In Smallcase”) B = InputBox („Enter a String”, „In wielkie litery”) C = StrComp (A, B, vbTextCompare) MsgBox C End Sub 

Krok 6: Teraz naciśnij F5 i podaj dwa ciągi wejściowe w następujący sposób.

Krok 7: Zobacz wynik końcowy w następujący sposób.

Otrzymujemy 0, ponieważ porównanie tekstu nie rozróżnia wielkości liter, co oznacza, że ​​łańcuchy są równe.

Przykład # 3 - VBA StrComp

Teraz mam niektóre dane w Arkuszu 1 w następujący sposób, chcę dowiedzieć się, czy zarówno dane w kolumnie A, jak i kolumnie B są do siebie podobne, czy nie. Spójrz na poniższe dane.

Krok 1: Pozwól nam pracować w trzecim przykładzie dla naszych danych w następujący sposób.

Kod:

 Sub Sample2 () End Sub 

Krok 2: Aktywuj arkusz 1, abyśmy mogli korzystać z jego właściwości.

Kod:

 Sub Sample2 () Arkusze robocze („Arkusz 1”). Aktywuj End Sub 

Krok 3: Zadeklaruj dwie zmienne: jedną jako liczbę całkowitą, która zostanie użyta w pętli, a drugą jako ciąg znaków, który posłuży do przechowywania wyniku porównania.

Kod:

 Sub Próbki 2 () Arkusze robocze („Arkusz 1”). Aktywuj Dim A jako liczbę całkowitą Dim B jako ciąg End Sub 

Krok 4: Napisz następujący kod, aby porównać i użyć pętli for.

Kod:

 Sub Sample2 () Arkusze robocze („Arkusz 1”). Aktywuj Dim A jako liczbę całkowitą Dim B jako ciąg znaków dla A = 2 do 5 B = StrComp (Komórki (A, 1). Wartość, Komórki (A, 2). Wartość, vbBinaryCompare) Jeśli B = 0, wówczas komórki (A, 3). Wartość = „Równe” inne komórki (A, 3). Wartość = „NIE Równe” Koniec, jeśli następny A Koniec pod 

Krok 5: Uruchom powyższy kod i zobacz wynik w Arkuszu 1 w następujący sposób.

Żaden z łańcuchów nie był równy w porównaniu.

Rzeczy do zapamiętania

  • To jest funkcja porównawcza.
  • Zwraca 0, 1, -1 lub NULL w wyniku niezgodności z prawdą lub fałszem.
  • Jeśli nie udostępniamy żadnej z metod porównania, domyślnie metodą porównania jest VbBinaryCompare.
  • Metoda porównania jest opcjonalnym argumentem dla tej funkcji.

Polecane artykuły

To jest przewodnik po VBA StrComp. Tutaj omawiamy sposób korzystania z funkcji Excel VBA StrComp wraz z praktycznymi przykładami i szablonem Excela do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. VBA InStr wyjaśniono za pomocą przykładów
  2. Typ danych VBA Integer
  3. Jak wybrać komórkę za pomocą kodu VBA?
  4. Transponuj zakres w VBA
  5. Arkusze VBA (przykłady)

Kategoria: