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 |