Što je RegEx u programu Excel VBA?
RegEx je kratica za „ Regularni izraz “ u VBA Excelu i slijed je znakova koji definira obrazac pretraživanja za pronalaženje određenog uzorka znakova u nizu vrijednosti. Jednostavnom riječju, "možemo stvoriti obrazac regularnog izraza i pomoću njega tražiti niz tog uzorka."
VBA RegEx je objektni model. Znam da je zastrašujuće gledajući objašnjenje, ali stvar je u prirodi predmeta. Ovdje morate imati na umu da je VBA RegEx (regularni izraz) objekt tekstualne funkcije poput naših ostalih tekstualnih funkcija, „LIJEVO, DESNO, SREDINO“.

Kako omogućiti RegEx u programu Excel VBA?
Kao što sam rekao VBA-u, RegEx je objektni model u VBA-u, baš kao i naš vanjski softver poput "MS Word" i "MS PowerPoint." Slično tome, RegEx je također komponentni objektni model (COM), na koji se moramo pozvati u VBA uređivaču. Da biste omogućili RegEx, slijedite korake u nastavku.
Korak 1: Idite na Visual Basic Editor (Alt + F11)

Korak 2: Idite na Alati i reference.

Korak 3: Sad ćete vidjeti reference na VBA projekt. Pomaknite se prema dolje i odaberite "Microsoft VBScript Regular Expression 5.5."

Korak 4: Sada kliknite, u redu. Ovom RegEx objektu možemo pristupiti sada u VBA kodiranju.
Primjer - Sada ću vam pokazati jedan jednostavan primjer. Pretpostavimo da imate riječi "Prodaja 2019, prodaja 2018 i prodaja 2017". Ako obrazac definirate kao (0 - 7), podudara se sa svim brojevima između 0 i 7, tako da će naša podudaranja biti 201, 201 i 2017 u svakom nizu.
VBA RegEx uzorak
Uzorak funkcije VBA RegEx izgleda zastrašujuće i treba mu neko vrijeme da shvati obrazac. Ovdje možemo vidjeti dvije vrste niza znakova, jedan je "Doslovni znakovi", a drugi "Metaznakovi".
- Doslovni znakovi traže točno podudaranje navedenog niza. Na primjer, doslovni niz znakova "EFG" jednostavno traži sva podudaranja "EFG" u navedenom tekstu.
- Metaznakovi nisu ništa drugo do kombinacija znakova s točnim značenjem u uzorku RegEx. Ovo je potpuno drugačije od doslovnih likova. Ogromna je tema koju treba pokriti. Ispod su neke od važnih sintaksa.
Sintaksa | Opis | Primjer | Primjer podudaranja | |||
. | Odgovara bilo kojem pojedinačnom znaku ulaznog niza. | pt | Ljubimac. Lonac, put, uzorak | |||
() | Podudara se s bilo kojim pojedinačnim znakom između zagrada ulaznog niza. | (pt) | Odgovara ili p ili t | |||
(^) | Podudara se s bilo kojim pojedinačnim znakom, ne između zagrade ulaznog niza. | (pt) | Ne podudara se ni s p ni s t | |||
(Prvi zadnji) | Podudara se s bilo kojim znakom između raspona navedenog u zagradi. | (0-9) | Odgovara bilo kojoj znamenci od 0 do 9 | |||
(az) | Podudara se s bilo kojim malim slovom od a do z | |||||
(AZ) | Odgovara bilo kojem velikom slovu od A do Ž | |||||
s | Odgovara bilo kojem razmaku. | - | Podudara se s razmakom, novom linijom ili znakom kartice | |||
S | Odgovara bilo kojem znaku koji nije razmak | - | Podudarni znakovi nisu razmak, nije nova crta ili nisu znakovi kartice | |||
d | Odgovara bilo kojem jednoznamenkastom znaku. | SE 5 VG 6 | Utakmice 5 i 6 | |||
D | Odgovara bilo kojem pojedinačnom znaku koji nije znamenkasti | SE 5 VG 6 | Podudara se sa SEVG-om |
Svojstva i metode RegEx objekta
Kao i svi naši objektni modeli, i RegEx ima svoja svojstva i metode. Sad ćemo vidjeti jednog po jednog u detalje.
Svojstva VBA Regex objekta
- Uzorak: Koristi se za podudaranje s navedenim nizom.
- Ignore Case: Ovo je zanemarivanje velikih i malih slova.
- Općenito: Ako želite pronaći sva podudaranja u uzorku, tada je argument ISTINA, inače će se pronaći prvo podudaranje.
- Višeredni: ako želite pronaći nove prelome redaka, možete to koristiti.
Metode RegEx objekta
- Test: Ovo je za testiranje može li se uzorak pronaći u navedenom nizu. Ovo će vratiti TRUE ako je pronađeno ili FALSE.
- Izvrši: Ovo će vratiti sva podudaranja uzorka prema nizu za pronalaženje.
- Zamijeni: Ovo će zamijeniti niz pretraživanja novim nizom.
Primjer RegExa u VBA Excelu
Sada pogledajte donji primjer VBA koda.
Kodirati:
Sub RegEx_Example () Zatamni RegEx kao objekt, MyString kao niz Postavi RegEx = CreateObject ("VBScript.RegExp") s RegEx .Pattern = "(0-9) +" Kraj s MyString = "Datum rođenja je 1985" MsgBox RegEx .Test (MyString) MyString = "Datum rođenja je ???" MsgBox RegEx.Test (MyString) Kraj Sub
redovito
U gornjem kodu postavili smo obrazac za pretraživanje broja od 0 do 9 na sljedeći način.
Uz RegEx .Pattern = "(0-9) +" Završi sa
Tada varijabla MyString = "Datum rođenja je 1985. godina" sadrži vrijednosti od 0 do 9, tako da će naš okvir za poruke vratiti TRUE.
MyString = "Datum rođenja je ???" nema brojeve od 0 do 9, pa će vratiti FALSE kao rezultat okvira za poruke.
