VBA Wildcards

Denne opplæringen vil demonstrere hvordan du bruker jokertegn i VBA.

Jokertegn brukes i alle programmeringsspråk og databaseapplikasjoner som SQL Server. Et jokertegn kan defineres som et symbol som brukes til å erstatte ett eller flere tegn i en tekststreng. For eksempel vil denne tekststrengen - “mo*” - finne ordene mamma, mus, elg, mamma osv.; mens denne tekststrengen “mo?” vil bare finne ordet mamma som jokertegn? erstatter bare ett tegn.

Vi bruker jokertegn med Like Operator som er et enklere alternativ til VBA Regex.

Bruke Asterix (*) jokertegn i VBA

Asterix -jokertegnet erstatter ett eller flere tegn i en VBA -streng.

La oss se på følgende celleområde i Excel:

Ved å bruke et Asterix -jokertegn i vår VBA -kode, kan vi finne alle fornavnene som begynner med “M” og endre fargen på teksten til rød.

12345678 Sub CheckForM ()Dim x Som heltallFor x = 3 til 8Hvis rekkevidde ("B" og x). Verdi som "M*" DaOmråde ("B" og x). Font.Color = vbRedSlutt omNeste xSlutt Sub

Vi har derfor gått gjennom området og funnet alle fornavnene som begynner med bokstaven M ettersom jokertegnstrengen vår er “M*

Resultatet av kjøring av koden ovenfor er vist nedenfor.

Hvis vi skulle bruke jokertegnet “Ma*” - så ville bare fornavnene i B3 og B4 endres.

Bruke spørsmålstegnet (?) Jokertegn i VBA

Spørsmålstegnet vil erstatte et enkelt tegn i en VBA -streng.

Vurder følgende data:

Vi kan bruke jokertegnet "? Im" for å finne fornavn som slutter på "im"

12345678 Sub CheckForIM ()Dim x Som heltallFor x = 3 til 8If Range ("B" & x) .Value Like "? Im" ThenOmråde ("B" og x). Font.Color = vbRedSlutt omNeste xSlutt Sub

Resultatet av å kjøre denne koden er vist nedenfor:

Bruk [char list] som et jokertegn

Eksemplet ovenfor kan endres litt slik at vi kan bruke spørsmålstegnet, i tillegg til en tegneliste over tillatte tegn. Jokertegnstrengen kan derfor endres til “? [E-i] m” hvor det første tegnet kan være hva som helst, det andre tegnet må være et tegn mellom e og i og den siste bokstaven må være tegnet “m”. Bare 3 tegn er tillatt.

12345678 Sub CharListTest ()Dim x Som heltallFor x = 3 til 8If Range ("B" & x) .Value Like "? [E-i] m" DaOmråde ("B" og x). Font.Color = vbRedSlutt omNeste xSlutt Sub

Resultatet av denne koden ville være:

VBA -programmering | Kodegenerator fungerer for deg!

Bruke hash (#) Wildcard i VBA

Jokertegnet (#) erstatter et enkelt siffer i en VBA -streng. Vi kan matche mellom 0 og 9.

12345678910 Sub CheckForNumber ()Dim x As Integer, y As IntegerFor x = 3 til 8For y = 2 til 5Hvis ActiveSheet.Cells (x, y) liker "##" DaActiveSheet.Cells (x, y) .Font.Color = vbRedSlutt omNeste yNeste xSlutt Sub

Koden ovenfor vil gå gjennom alle cellene i området ("B3: E8") og vil endre fargen på teksten i en celle til RØD hvis et tosifret tall blir funnet i den cellen.

I eksemplet nedenfor vil koden bare endre nummeret hvis det siste tallet er et 9.

12345678910 Sub CheckFor9 ()Dim x As Integer, y As IntegerFor x = 3 til 8For y = 2 til 5Hvis ActiveSheet.Cells (x, y) liker "#9" DaActiveSheet.Cells (x, y) .Font.Color = vbRedSlutt omNeste yNeste xSlutt Sub

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave