Denna handledning kommer att visa hur du använder jokertecken i VBA.
Jokertecken används i alla programmeringsspråk och databasapplikationer som SQL Server. Ett jokertecken kan definieras som en symbol som används för att ersätta ett eller flera tecken i en textsträng. Till exempel hittar denna textsträng - "mo*" - orden mamma, mus, älg, mamma etc; medan den här textsträngen "mo?" hittar bara ordet mamma som jokertecken? ersätter endast ett tecken.
Vi använder jokertecken med Like Operator som är ett enklare alternativ till VBA Regex.
Använda Asterix (*) jokertecken i VBA
Asterix jokertecken ersätter ett eller flera tecken i en VBA -sträng.
Låt oss titta på följande cellintervall i Excel:
Genom att använda ett Asterix -jokertecken i vår VBA -kod kan vi hitta alla förnamn som börjar med “M” och ändra textens färg till röd.
12345678 | Sub CheckForM ()Dim x Som heltalFör x = 3 till 8Om intervall ("B" & x) .Värde som "M*" DåOmråde ("B" & x). Font.Color = vbRedAvsluta omNästa xAvsluta Sub |
Vi har därför gått igenom intervallet och hittat alla förnamn som börjar med bokstaven M eftersom vår jokerteckensträng är ”M*”
Resultatet av att köra ovanstående kod visas nedan.
Om vi skulle använda jokerteckensträngen “Ma*” - då skulle bara förnamnen i B3 och B4 ändras.
Använda frågetecknet (?) Jokertecken i VBA
Frågetecknet kommer att ersätta ett enda tecken i en VBA -sträng.
Tänk på följande data:
Vi kan använda jokertecknet "? Im" för att hitta alla förnamn som slutar på "im"
12345678 | Sub CheckForIM ()Dim x Som heltalFör x = 3 till 8If Range ("B" & x) .Värde som "? Im" DåOmråde ("B" & x). Font.Color = vbRedAvsluta omNästa xAvsluta Sub |
Resultatet av att köra den här koden visas nedan:
Använda [char list] som ett jokertecken
Exemplet ovan kan modifieras något så att vi kan använda frågetecknet, förutom en teckenlista över tillåtna tecken. Jokerteckensträngen kan därför ändras till "? [E-i] m" där det första tecknet kan vara vad som helst, det andra tecknet måste vara ett tecken mellan e och i och den sista bokstaven måste vara tecknet "m". Endast 3 tecken är tillåtna.
12345678 | Sub CharListTest ()Dim x Som heltalFör x = 3 till 8If Range ("B" & x) .Värde som "? [E-i] m" DåOmråde ("B" & x). Font.Color = vbRedAvsluta omNästa xAvsluta Sub |
Resultatet av denna kod skulle vara:
VBA -programmering | Kodgenerator fungerar för dig!
Använda hash (#) jokertecken i VBA
Jokertecknet (#) ersätter en enda siffra i en VBA -sträng. Vi kan matcha mellan 0 och 9.
12345678910 | Sub CheckForNumber ()Dim x Som heltal, y Som heltalFör x = 3 till 8För y = 2 till 5Om ActiveSheet.Cells (x, y) gillar "##" DåActiveSheet.Cells (x, y) .Font.Color = vbRedAvsluta omNästa yNästa xAvsluta Sub |
Koden ovan går igenom alla celler i intervallet ("B3: E8") och ändrar färgen på texten i en cell till RÖD om ett tvåsiffrigt nummer finns i den cellen.
I exemplet nedan kommer koden bara att ändra numret om det sista numret är ett 9.
12345678910 | Sub CheckFor9 ()Dim x Som heltal, y Som heltalFör x = 3 till 8För y = 2 till 5Om ActiveSheet.Cells (x, y) gillar "#9" DåActiveSheet.Cells (x, y) .Font.Color = vbRedAvsluta omNästa yNästa xAvsluta Sub |