VBA StrComp | Vertaa merkkijonoja VBA: ssa StrComp-funktion avulla

Excel VBA StrComp -toiminto

VBA StrComp on sisäänrakennettu toiminto, jota käytetään vertaamaan, ovatko kaksi merkkijonoarvoa samat vai eivät. Tulokset eivät kuitenkaan ole oletusarvoina TOSI tai EPÄTOSI, kuten laskentataulukossa, vaan ne ovat erilaisia.

Ennen kuin tarkastelemme tuloksia, haluan näyttää sinulle ensin StrComp-funktion syntaksin.

  • Merkkijono 1: Merkkijono 1 on ensimmäinen merkkijono tai arvo, jota vertaamme.
  • Merkkijono 2: Merkkijono 2 on toinen merkkijono tai arvo, jota verrataan merkkijonoon 1 .
  • Vertaa: Voimme toimittaa kolme vaihtoehtoa täältä.
      • 0 = Binaarivertailu. Tämä suorittaa kirjainkoon huomioon ottavat laskelmat. Esimerkiksi "Hei" ei ole sama kuin "HELLO", koska molemmat sanat ovat erilaisia. Tämä on oletusarvo, jos ohitat tämän parametrin. vbBinaryCompare
      • 1 = Tekstivertailu. Tämä vaihtoehto suorittaa pienet ja pienet kirjaimet. Esimerkiksi "Hei" on yhtä suuri kuin "HELLO" -tapahtuma, vaikka molemmat sanatapaukset ovat erilaisia. vbTextCompare
      • 2 = Käytä vertailua. Tämä suorittaa tietokantavertailun.

String Comparison (StrComp) -toiminnon tulokset

Kuten kerroin, kun verrataan kahta arvoa laskentataulukossa, saamme tuloksen joko TOSI tai EPÄTOSI. Mutta VBA-merkkijonojen vertailutoiminnon tulokset eivät ole samat.

  • Saamme nollan (0), kun merkkijono 1 on yhtä suuri kuin merkkijono 2.
  • Saamme yhden (1), kun merkkijono 1 arvo on suurempi kuin merkkijono 2 arvo .
  • Saamme miinus yksi (-1), kun merkkijono 1 arvo on pienempi kuin merkkijono 2
  • Saamme NULL, kun merkkijono 1 tai merkkijono 2 on NULL.

Esimerkkejä VBA StrComp -toiminnon käytöstä

Voit ladata tämän VBA StrComp Excel -mallin täältä - VBA StrComp Excel -malli

Esimerkki 1

Aloitetaan yksinkertaisella esimerkillä. Verrataan esimerkiksi kahta arvoa eli "Excel VBA" ja "Excel VBA".

Koodi:

 Ala StrComp_Example1 () Dim FirstValue merkkijonona 'Merkkijonon 1 arvon tallentamiseen Dim SecondValue nimellä merkkijono' String 2: n arvon tallentamiseen Dim Result As String: StrComp-kaavan tuloksen tallentamiseen FirstValue = "Excel VBA" 'Määritä merkkijono 1 arvo SecondValue = "Excel VBA" 'Määritä merkkijono 2 arvo Tulos = StrComp (FirstValue, SecondValue, vbBinaryCompare)' Käytä StrComp-funktiota MsgBox Result 'Näytä tulos viestiruudussa End Sub 

Kun suoritan tämän koodin, tuloksena on nolla (0) , koska sekä merkkijono 1 että merkkijono 2 ovat samat.

Esimerkki 2

Nyt vaihdan kahden sanan kirjaimet.

Merkkijono 1 = Excel Vba

Merkkijono 2 = Excel VBA

Koodi:

 Ala StrComp_Example2 () Dim FirstValue merkkijonona 'Merkkijonon 1 arvon tallentamiseen Dim SecondValue nimellä merkkijono' String 2 arvon tallentamiseen Dim Result As String 'StrComp-kaavan tuloksen tallentamiseen FirstValue = "Excel Vba"' Määritä merkkijono 1 arvo SecondValue = "Excel VBA" 'Määritä merkkijono 2 arvo Tulos = StrComp (FirstValue, SecondValue, vbBinaryCompare)' Käytä StrComp-funktiota MsgBox-tulos 'Näytä tulos viestiruudussa End Sub 

Kun suoritan tämän koodin, saamme yhden, koska koska toimitimme Vertaa-argumentin nimellä “ vbBinaryCompare”, se tarkistaa isot ja pienet kirjaimet.

Nyt vaihdan Vertaa- vaihtoehdon arvosta " vbBinaryCompare" arvoon " vbTextCompare"

Koodi:

 Ala StrComp_Example3 () Dim FirstValue merkkijonona 'Merkkijonon 1 arvon tallentamiseen Dim SecondValue nimellä merkkijono' String 2 arvon tallentamiseen Dim Result As String 'StrComp-kaavan tuloksen tallentamiseen FirstValue = "Excel Vba"' Määritä merkkijono 1 arvo SecondValue = "Excel VBA" 'Määritä merkkijono 2 arvo Tulos = StrComp (FirstValue, SecondValue, vbTextCompare)' Käytä StrComp-funktiota MsgBox Result 'Näytä tulos viestiruudussa End Sub 

Tämän vertailun avulla saamme nollan (0), koska vbaTextCompare jättää huomiotta isot ja pienet kirjaimet.

Esimerkki 3

Tapaustutkimus VBA StrCompista IF-olosuhteilla

Oletetaan, että sinulla on alla olevan kuvan kaltaiset tiedot.

Meidän täytyy verrata String 1 kanssa String 2 ja saapua tulos kuin ”Tarkka”, jos molemmat ovat samat, muuten tulos olisi ”Not Tarkka”.

Alla oleva koodi tekee työn meille.

Koodi:

 Ala StrComp_Example4 () Himmennä tulos merkkijonona Dim I kokonaislukuna i = 2-6 Tulos = StrComp (Solut (i, 1). Arvo, Solut (i, 2). Arvo) Jos tulos = 0, sitten Solut (i, 3 ) .Value = "Tarkat" muut solut (i, 3) .Value = "Ei tarkka" Loppu, jos seuraava i Loppu 

Kun suoritan yllä olevan VBA-koodin Excelissä, saamme alla olevan tuloksen.

Jos katsot C4-solua, merkkijono 1 ja merkkijono 2 ovat samat, mutta merkit ovat kirjainkokoisia, joten tulos on "Ei tarkka". Tämän ongelman ratkaisemiseksi meidän on toimitettava Vertaa nimellä vbTextCompare.

Alla on muokattu koodi, jolla saadaan tulos tarkaksi C4-solulle.

Koodi:

 Ala StrComp_Example4 () Himmennä tulos merkkijonona Dim I kokonaislukuna i = 2-6 Tulos = StrComp (Solut (i, 1). Arvo, Solut (i, 2). Arvo, vbTextCompare) Jos tulos = 0 Sitten solut (i , 3) .Value = "Tarkat" muut solut (i, 3). Arvo = "Ei tarkka" Loppu, jos seuraava i Loppu 

Tämä koodi palauttaa alla olevan tuloksen.


$config[zx-auto] not found$config[zx-overlay] not found