Hvordan bruke VBA og Regex

Bruk VBScript regulære uttrykk klasse for å muliggjøre dine VBA-programmer for å utføre regulære uttrykk søk. Regulære uttrykk er tekstmønstre som kan hjelpe deg søke etter strenger med en kompleks syntaks i Office-dokumenter. Disse strengene inkluderer e-postadresser, telefonnumre og tekstfelt med bestemte kriterier du har definert i en Excel eller Access database. Hvis du vil vite den spesifikke syntaksen til regulære uttrykk, se Zytrax "Regular Expression" Web-side eller en lignende ressurs. Sørg for å teste dine VBA-programmer som bruker regulære uttrykk på mange ulike innspill strenger for å være sikker på at du har skrevet dine regulære uttrykk mønstre riktig.

Bruksanvisning

1 Åpne ett av Office-programmer, for eksempel Word, Excel eller Access. Trykk "Alt" og "F11" samtidig for å gå inn i VBA programmeringsmiljøet, klikk på "Insert" -menyen overskriften. Klikk på "Module" element for å skape et nytt vindu der du kan skrive VBA-programmer.

2 Skriv inn følgende utsagn for å skape en subrutine i å bruke vanlige uttrykk:

Sub RegularExpressionTester ()
End Sub

3 Skriv følgende uttalelse før "End Sub" statement av programmet for å lage regulære uttrykk objektet fra VBScript. Denne uttalelsen skaper objektet hvis funksjoner utføre regulære uttrykk søk.

Set objRegExp = CreateObject("vbscript.regexp")

4 Skriv "objRegExp.Global = true" hvis du vil at din vanlige uttrykk for å matche en streng bare på den første forekomsten av strengen. Type "objRegExp.Global = false" hvis du ønsker å matche på alle forekomster av strengen. For eksempel, hvis du søker etter "@" karakter i en e-postadresse, og bare ønsker å finne den første forekomsten av denne karakter, setter du "Global" til "false".

5 Skriv "objRegExp.IgnoreCase = true" hvis du vil at vanlige uttrykket å ignorere saken når matchende en streng. Sett denne egenskapen til usann hvis du trenger det gjelder den strengen du søker å matche regulært uttrykk mønster. For eksempel, hvis du validere e-postadresser, som ikke er store og små bokstaver, setter denne egenskapen til "true".

6 Type "objRegExp.Pattern =" skriv det vanlige uttrykket mønsteret du ønsker å matche med en inngang streng. For eksempel for å validere en e-postadresse du kan inkludere et vanlig uttrykk mønster som "[az, AZ]

@ [az, AZ] com." Dette mønsteret angir en streng med bokstaver før og etter en "@" symbol. Mønsteret inneholder også domenet delstreng ".com. Merk at ekte e-postadresser kan være mer komplisert enn dette forenklet mønster.

7 Skriv "Set regExpMatches = objRegExp.Execute (strToSearch)" for å bruke din vanlige uttrykk mønster til inngangen streng "strToSearch." For e-validering eksempel kan du tidligere har satt variabelen "strToSearch" til tekst du ønsker å validere som en e-postadresse. En prøve utsagn for å sette denne variabelen er "strToSearch =" [email protected] ""

8 Skriv "Hvis regExpMatches.Count = 0 da" for å teste om det vanlige uttrykket objektet matchet alle tekst i strengen. Hvis dine innspill teksten var "[email protected]" for e-validering eksempel, så «Greven» vil være 1. Du kan deretter skrive en erklæring om at teksten var en gyldig e-postadresse: "MsgBox (" Strengen er en Gyldig e-postadresse.")".