VBA StrComp - Usporedite žice u VBA koristeći funkciju StrComp

Excel VBA StrComp funkcija

VBA StrComp je ugrađena funkcija koja se koristi za usporedbu jesu li dvije vrijednosti niza iste ili ne. Međutim, rezultati nisu zadani TRUE ili FALSE kao na radnom listu, nego je drugačije.

Prije nego što pogledamo rezultate, najprije ću vam pokazati sintaksu funkcije StrComp.

  • Niz 1: Niz 1 prvi je niz ili vrijednost koju uspoređujemo.
  • Niz 2: Niz 2 je drugi niz ili vrijednost koji uspoređujemo sa nizom 1 .
  • Usporedite: Ovdje možemo ponuditi tri mogućnosti.
      • 0 = Binarna usporedba. Ovo izvodi proračune osjetljive na velika i mala slova. Na primjer, "Zdravo" nije jednako "POZDRAV", jer su obje riječi različite. To je zadana vrijednost ako zanemarite ovaj parametar. vbBinaryCompare
      • 1 = Usporedba teksta. Ova opcija vrši izračune koji nisu osjetljivi na mala i velika slova. Na primjer, "Zdravo" jednako je događaju "POZDRAV", iako su obje riječi različite. vbTextCompare
      • 2 = Pristup usporedi. Ovo vrši usporedbu baze podataka.

Rezultati funkcije usporedbe nizova (StrComp)

Kao što sam rekao kada usporedimo dvije vrijednosti na radnom listu, dobivamo rezultat kao TRUE ili FALSE. Ali s VBA funkcijom usporedbe nizova, rezultati nisu isti.

  • Dobivamo nulu (0) kada je Niz 1 jednak Stringu 2.
  • Mi smo dobili jedan (1) kada Gudački 1 vrijednost je veća od niz 2 vrijednosti .
  • Dobivamo minus jedan (-1) kada je vrijednost niza 1 manja od niza 2
  • Dobivamo NULL kada je vrijednost String 1 ili String 2 NULL.

Primjeri upotrebe VBA StrComp funkcije

Primjer # 1

Počnimo s jednostavnim primjerom. Na primjer, usporedit ćemo dvije vrijednosti, tj. "Excel VBA" i "Excel VBA."

Kodirati:

PodstrComp_Example1 () Dim FirstValue As String 'Za pohranu vrijednosti niza 1 Dim SecondValue As String' Za spremanje niza 2 vrijednosti Dim Result As String 'Za pohranu rezultata formule StrComp FirstValue = "Excel VBA"' Dodijelite String 1 vrijednost SecondValue = "Excel VBA" 'Dodijeli vrijednost niza 2 Rezultat = StrComp (FirstValue, SecondValue, vbBinaryCompare)' Primijeni funkciju StrComp MsgBox Rezultat 'Prikaži rezultat u okviru za poruku End Sub

Kad pokrenem ovaj kôd, dobit ćemo kao rezultat nulu (0) jer su i vrijednosti 1 i 2 niza iste.

Primjer # 2

Sad ću promijeniti padeže dviju riječi.

Niz 1 = Excel Vba

Niz 2 = Excel VBA

Kodirati:

PodstrComp_Example2 () Zatamni FirstValue kao niz 'Za pohranu vrijednosti niza 1 Zatamni SecondValue kao niz' Za spremanje niza 2 vrijednosti Dim Result As String 'Za spremanje rezultata formule StrComp FirstValue = "Excel Vba"' Dodijeli nizu 1 vrijednost SecondValue = "Excel VBA" 'Dodijeli vrijednost niza 2 Rezultat = StrComp (FirstValue, SecondValue, vbBinaryCompare)' Primijeni funkciju StrComp MsgBox Rezultat 'Prikaži rezultat u okviru za poruku End Sub

Kada pokrenem ovaj kôd, dobit ćemo 1, jer budući da smo argument za usporedbu dali kao " vbBinaryCompare", on će provjeriti ima li znakova velikih i malih slova.

Sada ću promijeniti opciju Usporedba iz " vbBinaryCompare" u " vbTextCompare"

Kodirati:

Pod StrComp_Example3 () Zatamni FirstValue kao niz 'Za pohranu niza 1 vrijednost Zatamni SecondValue kao niz' Za spremanje niza 2 vrijednosti Zatamni rezultat kao niz 'Za spremanje rezultata formule StrComp FirstValue = "Excel Vba"' Dodijeli nizu 1 vrijednost SecondValue = "Excel VBA" 'Dodijeli vrijednost niza 2 Rezultat = StrComp (FirstValue, SecondValue, vbTextCompare)' Primijeni funkciju StrComp MsgBox Rezultat 'Prikaži rezultat u okviru za poruku End Sub

Ovom Usporedbom dobit ćemo nula (0) jer vbaTextCompare zanemaruje riječi osjetljive na velika i mala slova.

Primjer # 3

Studija slučaja VBA StrComp s IF stanjem

Pretpostavimo da imate podatke poput donje slike.

Moramo usporediti String 1 sa Stringom 2 i doći do Rezultata kao "Točno" ako su oba ista, inače bi rezultat trebao biti "Nije Tačan".

Kôd u nastavku učinit će posao umjesto nas.

Kodirati:

Sub StrComp_Example4 () Zatamni rezultat kao niz Zatamni I kao cjelovito za i = 2 do 6 Rezultat = StrComp (Ćelije (i, 1) .Vrijednost, Ćelije (i, 2) .Vrijednost) Ako je rezultat = 0 Tada ćelije (i, 3 ) .Value = "Tačno" Ostale ćelije (i, 3) .Value = "Nije točno" Kraj ako je sljedeće i Kraj Sub

Kad pokrenem gornji VBA kôd u Excelu, dobit ćemo donji rezultat.

Ako pogledate C4 ćeliju, niz 1 i niz 2 su isti, ali znakovi razlikuju velika i mala slova, pa je rezultat "Nije točno". Da bismo prevladali ovaj problem, moramo Usporediti kao vbTextCompare.

Ispod je modificirani kôd za dobivanje rezultata kao "Točan" za ćeliju C4.

Kodirati:

Pod StrComp_Example4 () Zatamni rezultat kao niz Zatamni I kao cijeli za i = 2 do 6 Rezultat = StrComp (Ćelije (i, 1) .Value, Ćelije (i, 2) .Value, vbTextCompare) Ako je rezultat = 0, onda ćelije (i , 3) .Value = "Tačno" Ostale ćelije (i, 3) .Value = "Nije točno" Kraj ako je sljedeće i Kraj Sub

Ovaj kôd vratit će donji rezultat.

Zanimljivi članci...