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

Sisällysluettelo

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 oletusarvoisesti 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ä 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 avulla 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ä

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, saamme tulokseksi nollan (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 1, 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 saapuvat tulos kuin ”Tarkka”, jos molemmat ovat samat, muuten tulos olisi ”eikä tarkkoja.”

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.

Mielenkiintoisia artikkeleita...