VBA „StrComp“ Palyginkite VBA eilutes naudodami „StrComp“ funkciją

„Excel VBA StrComp“ funkcija

VBA StrComp yra įmontuota funkcija, naudojama norint palyginti, ar abi eilutės reikšmės yra vienodos, ar ne. Tačiau rezultatai nėra numatyti kaip TIKRA ar NETIESA, kaip ir darbalapyje, o jie skiriasi.

Prieš pažvelgdami į rezultatus, leiskite man pirmiausia parodyti „StrComp“ funkcijos sintaksę.

  • 1 eilutė: 1 eilutė yra pirmoji eilutė arba vertė, kurią lyginame.
  • 2 eilutė: 2 eilutė yra antra eilutė arba vertė, kurią lyginame su 1 eilute .
  • Palyginkite: Čia galime pateikti tris variantus.
      • 0 = Dvejetainis palyginimas. Taip atliekami didžiosios ir mažosios raidės. Pavyzdžiui, „Labas“ nėra lygus „LABAI“, nes abu žodžių atvejai skiriasi. Tai yra numatytoji vertė, jei ignoruojate šį parametrą. vbBinaryCompare
      • 1 = teksto palyginimas. Ši parinktis atlieka neskelbtinus skaičiavimus. Pavyzdžiui, „Labas“ yra lygus „Sveiki“ įvykiui, nors abiejų žodžių atvejai skiriasi. vbTextCare
      • 2 = Prieiga prie palyginimo. Tai atlieka duomenų bazių palyginimą.

Styginių palyginimo (StrComp) funkcijos rezultatai

Kaip sakiau, kai darbalapyje lyginame dvi reikšmes, rezultatas gaunamas kaip TIKRA arba NETIESA. Tačiau naudojant VBA eilučių palyginimo funkcijų rezultatai nėra vienodi.

  • Gauname nulį (0), kai 1 eilutė lygi 2 eilutei.
  • Mes gauname vieną (1), kai 1 eilutės vertė yra didesnė už 2 eilutės reikšmę .
  • Gauname minusą vieną (-1), kai 1 eilutės vertė yra mažesnė nei 2 eilutė
  • Mes gauname NULL, kai 1 eilutės arba 2 eilutės vertė yra NULL.

VBA StrComp funkcijos naudojimo pavyzdžiai

Šį „VBA StrComp Excel“ šabloną galite atsisiųsti čia - VBA „StrComp Excel“ šablonas

1 pavyzdys

Pradėkime nuo paprasto pavyzdžio. Pavyzdžiui, palyginsime dvi reikšmes, ty „Excel VBA“ ir „Excel VBA“.

Kodas:

 Sub StrComp_Example1 () „Dim FirstValue“ kaip eilutė „Norėdami išsaugoti 1 eilutės vertę„ Dim SecondValue “kaip eilutė“ Norėdami išsaugoti 2 eilutės vertę „Dim Result As“ eilutė “„ StrComp “formulės rezultatą išsaugoti FirstValue =" Excel VBA "" Priskirkite 1 eilutės reikšmę SecondValue = „Excel VBA“ 'Priskirkite 2 eilutės reikšmę Rezultatas = StrComp (FirstValue, SecondValue, vbBinaryCompare)' Taikyti StrComp funkciją MsgBox Rezultatas 'Rodyti rezultatą pranešimo laukelyje End Sub 

Kai paleisiu šį kodą, gausime nulį (0) , nes ir 1, ir 2 eilutės reikšmės yra vienodos.

2 pavyzdys

Dabar pakeisiu dviejų žodžių atvejus.

1 eilutė = „ Excel Vba“

2 eilutė = „ Excel“ VBA

Kodas:

 „Sub StrComp_Example2“ („Dim FirstValue“ kaip eilutė „Norėdami išsaugoti 1 eilutės vertę„ Dim SecondValue “kaip eilutė“ Norėdami išsaugoti 2 eilutės vertę „Dim Result As“ eilutė “„ StrComp “formulės rezultatą išsaugoti FirstValue =" Excel Vba "" Priskirkite 1 eilutės reikšmę SecondValue = „Excel VBA“ 'Priskirkite 2 eilutės reikšmę Rezultatas = StrComp (FirstValue, SecondValue, vbBinaryCompare)' Taikyti StrComp funkciją MsgBox Rezultatas 'Rodyti rezultatą pranešimo laukelyje End Sub 

Kai paleisiu šį kodą, gausime 1, nes kadangi argumentą „Palyginti“ pateikėme kaip „ vbBinaryCompare“, jis patikrins, ar nėra didžiųjų ir mažųjų raidžių.

Dabar pakeisiu parinktį Palyginti iš „ vbBinaryCompare“ į „ vbTextCompare“

Kodas:

 „Sub StrComp_Example3“ („Dim FirstValue“ kaip eilutė „Norėdami išsaugoti 1 eilutės vertę„ Dim SecondValue “kaip eilutė“ Norėdami išsaugoti 2 eilutės vertę „Dim Result As“ eilutė “„ StrComp “formulės rezultatą išsaugoti FirstValue =" Excel Vba "" Priskirkite 1 eilutės reikšmę SecondValue = „Excel VBA“ 'Priskirkite 2 eilutės reikšmę Rezultatas = StrComp („FirstValue“, „SecondValue“, „vbTextCompare“) „Taikyti„ StrComp “funkciją„ MsgBox Result ““ Rodyti rezultatą pranešimo laukelyje „End Sub“ 

Naudodami šį palyginimą gausime nulį (0), nes „ vbaTextCompare“ nepaiso didžiųjų ir mažųjų raidžių žodžių.

3 pavyzdys

VBA StrComp pavyzdys su IF sąlyga

Tarkime, kad turite tokių duomenų, kaip žemiau pateiktame paveikslėlyje.

Turime palyginti 1 eilutę su 2 eilute ir gauti rezultatą kaip „Tiksli“, jei abu yra vienodi, kitu atveju rezultatas turėtų būti „Netikslus“.

Žemiau pateiktas kodas atliks darbą už mus.

Kodas:

 Sub StrComp_Example4 () Dim Rezultatas kaip eilutė Dim I kaip Sveikas skaičius = i ) .Value = "Tikslios" kitos ląstelės (i, 3) .Value = "Nėra tikslios" pabaiga, jei kita i pabaiga 

Kai paleisiu aukščiau nurodytą VBA kodą „Excel“, gausime žemiau pateiktą rezultatą.

Jei pažvelgsite į C4 langelį, eilutės 1 ir 2 eilutės yra vienodos, bet simboliai yra didžiosios ir mažosios raidės, todėl rezultatas yra „Nėra tikslus“. Norėdami išspręsti šią problemą, turime pateikti „Palyginti kaip vbTextCompare“.

Žemiau yra modifikuotas kodas, kad gautumėte C4 langelio rezultatą kaip „Tikslus“.

Kodas:

 Sub StrComp_Example4 () Dim Rezultatas kaip eilutė Dim I kaip sveikasis skaičius i = 2–6 Rezultatas = StrComp (Cells (i, 1). Vertė, Cells (i, 2) .Value, vbTextCompare) Jei rezultatas = 0, tada Cells (i , 3) .Value = "Tikslios" kitos ląstelės (i, 3) .Vertas = "Nėra tiksli" pabaiga, jei kita i pabaiga 

Šis kodas pateiks žemiau pateiktą rezultatą.


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