Hva er RegEx i Excel VBA?
RegEx står for " Regular Expression " i VBA Excel og er en sekvens av tegn som definerer søkemønsteret for å finne et bestemt mønster av tegn i en streng med verdier. I et enkelt ord, "kan vi lage et regulært uttrykksmønster og bruke det til å søke etter strengen til dette mønsteret."
VBA RegEx er en objektmodell. Jeg vet at det er skremmende ved å se på forklaringen, men saken er at objektets natur. En ting du må huske her er VBA RegEx (Regular Expression) er et tekstfunksjonsobjekt som våre andre tekstfunksjoner, "VENSTRE, HØYRE, MIDT."

Hvordan aktivere RegEx i Excel VBA?
Som jeg sa til VBA, er RegEx en objektmodell i VBA, akkurat som vår eksterne programvare som "MS Word" og "MS PowerPoint." Tilsvarende er RegEx også en Component Object Model (COM), som vi må referere til i VBA-redigereren. Følg trinnene nedenfor for å aktivere RegEx.
Trinn 1: Gå til Visual Basic Editor (Alt + F11)

Trinn 2: Gå til Verktøy og referanser.

Trinn 3: Nå vil du se referanser til VBA-prosjektet. Rull ned og velg "Microsoft VBScript Regular Expression 5.5."

Trinn 4: Klikk nå på, OK. Vi får tilgang til dette RegEx-objektet nå i VBA-koding.
Eksempel - Nå vil jeg vise deg ett enkelt eksempel. Anta at du har ordene “Salg 2019, Salg 2018 og Salg 2017”. Hvis du definerer mønsteret som (0 - 7), samsvarer det med alle tallene mellom 0 og 7, så kampene våre blir 201, 201 og 2017 i hver streng.
VBA RegEx mønster
Mønsteret til VBA RegEx-funksjonen ser skremmende ut, og det tar litt tid å forstå mønsteret. Vi kan se to typer en sekvens av tegn her, den ene er "Bokstavstegn", og en annen er "Metategn."
- Bokstavstegn søker etter nøyaktig samsvar med den oppgitte strengen. For eksempel ser den bokstavelige tegnsekvensen "EFG" bare etter alle treffene til "EFG" i den angitte teksten.
- Metategn er bare en kombinasjon av tegn med nøyaktig betydning i RegEx-mønsteret. Dette helt annerledes enn bokstavelige tegn. Det er et stort tema å dekke. Nedenfor er noen av de viktige syntaksen.
Syntaks | Beskrivelse | Eksempel | Eksempel Match | |||
. | Det samsvarer med hvert enkelt tegn i inngangsstrengen. | pt | Kjæledyr. Gryte, put, mønster | |||
() | Det samsvarer med et enkelt tegn mellom braketten til en inngangsstreng. | (pt) | Det samsvarer med enten p eller t | |||
(^) | Det samsvarer med et enkelt tegn, ikke mellom braketten til en inngangsstreng. | (pt) | Det samsvarer verken med p eller t | |||
(Først sist) | Den samsvarer med hvilket som helst tegn mellom området som er angitt i parentes. | (0-9) | Det samsvarer med ethvert siffer fra 0 til 9 | |||
(az) | Det samsvarer med små bokstaver fra a til z | |||||
(AZ) | Det samsvarer med alle store bokstaver fra A til Å | |||||
s | Det samsvarer med alle hvite mellomromskarakterer. | - | Matcher mellomrom, ny linje eller tabulatortegn | |||
S | Det samsvarer med alle tegn som ikke er mellomrom | - | Treffkarakterer er ikke mellomrom, ikke ny linje eller ikke fanetegn | |||
d | Det samsvarer med et enkeltsifret tegn. | SE 5 VG 6 | Kamp 5 og 6 | |||
D | Det samsvarer med et enkelt ikke-sifret tegn | SE 5 VG 6 | Kamper SEVG |
Egenskaper og metoder for RegEx-objekt
Som alle våre objektmodeller har også RegEx sine egne egenskaper og metoder. Nå vil vi se en etter en i detalj.
Egenskaper for VBA Regex Object
- Mønster: Dette brukes til å matche den medfølgende strengen.
- Ignorer sak: Dette er for å ignorere store og små bokstaver.
- Global: Hvis du vil finne alle treff i mønsteret, så er SANT argumentet, ellers blir den første kampen funnet.
- Multi-Line: Hvis du ønsker å finne nye linjeskift, kan du bruke dette.
Metoder for RegEx-objekt
- Test: Dette er for å teste om mønsteret finnes i den angitte strengen. Dette vil returnere SANT hvis det blir funnet eller ellers FALSE.
- Utfør: Dette vil returnere alle treffene i mønsteret mot funnstrengen.
- Erstatt: Dette vil erstatte søkestrengen med den nye strengen.
Eksempel på RegEx i VBA Excel
Ta en titt på nedenstående eksempel på VBA-kode.
Kode:
Sub RegEx_Example () Dim RegEx som objekt, MyString som streng Sett RegEx = CreateObject ("VBScript.RegExp") Med RegEx .Pattern = "(0-9) +" Slutt med MyString = "Fødselsdato er 1985" MsgBox RegEx .Test (MyString) MyString = "Fødselsdato er ???" MsgBox RegEx.Test (MyString) End Sub
regelmessig
I koden ovenfor har vi satt mønsteret for å søke nummeret fra 0 til 9 som følger.
Med RegEx .Pattern = "(0-9) +" Avslutt med
Deretter har variabelen MyString = "Fødselsdato er 1985" dette holder verdiene fra 0 til 9, så meldingsboksen vår vil returnere SANT.
MyString = “Fødselsdato er ???” har ikke tall fra 0 til 9, så vil returnere FALSE når meldingsboksene blir resultatet.
