VBA RegEx | Kuinka käyttää säännöllistä lauseketta VBA Excelissä? (Esimerkkejä)

Mikä on RegEx Excel VBA: ssa?

RegEx tarkoittaa " säännöllinen lauseke " VBA Excelissä ja on merkkijono, joka määrittää hakumallin tietyn merkkikuvion löytämiseksi arvojonosta. Yksinkertaisella sanalla "voimme luoda säännöllisen lausekkeen ja käyttää sitä hakemaan kyseisen mallin merkkijonoa".

VBA RegEx on olomalli. Tiedän, että se on pelottavaa katsomalla selitystä, mutta asia on, että kohteen luonne. Yksi asia, joka sinun on muistettava tässä, on VBA RegEx (säännöllinen lauseke) on tekstitoimintoobjekti, kuten muutkin tekstitoiminnot "VASEN, OIKEA, KESKI".

Kuinka ottaa RegEx käyttöön Excel VBA: ssa?

Kuten sanoin VBA: lle, RegEx on VBA: n objektimalli, aivan kuten ulkoiset ohjelmistomme, kuten "MS Word" ja "MS PowerPoint". Samoin RegEx on myös komponenttimalli (COM), johon meidän on viitattava VBA-editorissa. Ota RegEx käyttöön noudattamalla seuraavia ohjeita.

Vaihe 1: Siirry Visual Basic Editoriin (Alt + F11)

Vaihe 2: Siirry kohtaan Työkalut ja viitteet.

Vaihe 3: Nyt näet viittauksia VBA-projektiin. Vieritä alaspäin ja valitse ”Microsoft VBScript Regular Expression 5.5”

Vaihe 4: Napsauta nyt OK. Voimme käyttää tätä RegEx-objektia nyt VBA-koodauksessa.

Esimerkki - Näytän nyt yhden yksinkertaisen esimerkin. Oletetaan, että sinulla on sanat "Myynti 2019, Myynti 2018 ja Myynti 2017". Jos määrität kuvion arvoksi [0-7], se vastaa kaikkia lukuja välillä 0-7, joten vastaavuutemme ovat 201, 201 ja 2017 jokaisessa merkkijonossa.

VBA RegEx -malli

VBA RegEx -toiminnon kuvio näyttää pelottavalta ja sen ymmärtäminen vie jonkin aikaa. Voimme nähdä kahdenlaisia ​​merkkijonoja tässä: "Kirjaimelliset hahmot" ja toinen "Metahahmot".

  • Kirjaimelliset merkit etsivät toimitetun merkkijonon tarkkaa vastaavuutta. Esimerkiksi kirjaimellinen merkkijono "EFG" etsii yksinkertaisesti kaikkia sanan "EFG" vastaavuuksia toimitetusta tekstistä.
  • Metahahmot ovat vain yhdistelmä merkkejä, joilla on tarkka merkitys RegEx-kuviossa. Tämä on täysin erilainen kuin kirjaimelliset hahmot. Se on valtava aihe käsiteltäväksi, alla on joitain tärkeitä syntaksia.
Syntaksi Kuvaus Esimerkki Esimerkki ottelusta
. Se vastaa mitä tahansa syötemerkkijonon yksittäistä merkkiä pt Lemmikki. Potti, Put, Kuvio
[] Se vastaa mitä tahansa yksittäistä merkkiä syötemerkkijonon suluissa [pt] Se vastaa joko p tai t
[^] Se vastaa mitä tahansa yksittäistä merkkiä, ei syötemerkkijonon suluissa [^ pt] Se ei vastaa p tai t
[Ensimmäinen viimeinen] Se vastaa mitä tahansa merkkiä hakasulkeessa olevan alueen välillä [0-9] Se vastaa mitä tahansa numeroa 0-9
[az] Se vastaa kaikkia pieniä kirjaimia a-z
[AZ] Se vastaa isoja kirjaimia A: sta Z: hen
\ s Se vastaa mitä tahansa välilyöntiä - Vastaa välilyöntiä, uutta riviä tai sarkainmerkkiä
\ S Se sopii kaikkiin ei-valkoisiin tiloihin - Vastaavat merkit eivät ole välilyönti, ei Uusi rivi tai välilehti
\ d Se vastaa mitä tahansa yksinumeroista merkkiä SE 5 VG 6 Ottelut 5 ja 6
\ D Se sopii mihin tahansa yksittäiseen hahmoon SE 5 VG 6 Vastaa SEVG: tä

RegEx-objektin ominaisuudet ja menetelmät

Kuten kaikilla objektimalleillamme, myös RegExillä on omat ominaisuudet ja menetelmät. Nyt näemme yksi kerrallaan yksityiskohtaisesti.

VBA Regex Object -ominaisuudet

  • Kuvio: Tätä käytetään vastaamaan toimitettua merkkijonoa.
  • Ohita kirjainkoko : Tämä ohittaa isot ja pienet kirjaimet.
  • Yleinen: Jos haluat löytää kaikki osumat kuviosta, TOSI on argumentti tai muuten ensimmäinen osuma löydetään.
  • Monirivinen: Jos haluat löytää uusia rivinvaihtoja, voit käyttää tätä.

RegEx-objektin menetelmät

  • Testi: Tällä testataan, löytyykö kuvio mukana toimitetusta merkkijonosta. Tämä palauttaa arvon TOSI, jos se löytyy tai muuten EPÄTOSI.
  • Suorita: Tämä palauttaa kaikki kuvion vastaavuudet löytömerkkijonoa vastaan.
  • Korvaa: Tämä korvaa hakumerkkijonon uudella merkkijonolla.

Esimerkki RegExistä VBA Excelissä

Katso nyt alla oleva esimerkki VBA-koodista.

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

Koodi:

Sub RegEx_Example () Dim RegEx objektina, MyString merkkijonona Aseta RegEx = CreateObject ("VBScript.RegExp") RegEx .Pattern = "[0-9] +" End With MyString = "Syntymäpäivä on 1985" MsgBox RegEx .Test (MyString) MyString = "Syntymäpäivä on ???" MsgBox RegEx.Test (MyString) loppuosa

fregular

Edellä olevassa koodissa olemme asettaneet mallin etsimään lukua 0-9 seuraavasti.

 Kun RegEx .Pattern = "[0-9] +" Lopeta 

Sitten muuttuja MyString = "Syntymäpäivä on 1985" pitää arvot välillä 0-9, joten viestiruutu palauttaa TOSI.

MyString = "Syntymäpäivä on ???" ei ole yhtään numeroa 0-9, joten se palauttaa FALSE viestiruutujen tuloksena.


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