Tento tutoriál předvede, jak používat zástupné znaky ve VBA.
Zástupné znaky se používají ve všech programovacích jazycích a databázových aplikacích, jako je SQL Server. Zástupný znak lze definovat jako symbol, který se používá k nahrazení jednoho nebo více znaků v textovém řetězci. Například tento textový řetězec - „mo*“ - najde slova máma, myš, los, máma atd .; zatímco tento textový řetězec „mo?“ najde jako zástupný znak pouze slovo máma? nahrazuje pouze jeden znak.
S operátorem Like používáme zástupné znaky, což je jednodušší alternativa k VBA Regex.
Použití zástupného znaku Asterix (*) ve VBA
Zástupný znak Asterix nahrazuje jeden nebo více znaků v řetězci VBA.
Podívejme se na následující rozsah buněk v Excelu:
Použitím zástupného znaku Asterix v našem kódu VBA můžeme najít všechna křestní jména, která začínají na „M“, a změnit barvu textu na červenou.
12345678 | Sub CheckForM ()Dim x As IntegerPro x = 3 až 8Pokud rozsah („B“ & x). Hodnotu jako „M*“ pakRozsah ("B" & x). Font.Color = vbRedKonec IfDalší xEnd Sub |
Proto jsme prošli rozsahem a našli jsme všechna křestní jména, která začínají písmenem M, protože náš zástupný řetězec je „M*”
Výsledek spuštění výše uvedeného kódu je uveden níže.
Pokud bychom použili zástupný řetězec „Ma*“ - pak by se změnila pouze první jména v B3 a B4.
Použití zástupného znaku otazníku (?) Ve VBA
Otazník nahradí jeden znak v řetězci VBA.
Zvažte následující data:
Můžeme použít zástupný řetězec „? Im“ k nalezení jakýchkoli křestních jmen, která končí na „im“
12345678 | Dílčí kontrolaForIM ()Dim x As IntegerPro x = 3 až 8Pokud rozsah („B“ & x). Hodnota jako „? Im“ PakRozsah ("B" & x). Font.Color = vbRedKonec IfDalší xEnd Sub |
Výsledek spuštění tohoto kódu je uveden níže:
Použití [seznamu znaků] jako zástupného znaku
Výše uvedený příklad lze mírně upravit, abychom kromě seznamu povolených znaků mohli použít i otazník. Řetězec zástupných znaků lze tedy upravit na „? [E-i] m“, kde prvním znakem může být cokoli, druhým znakem musí být znak mezi e a i a posledním písmenem musí být znak „m“. Jsou povoleny pouze 3 znaky.
12345678 | Sub CharListTest ()Dim x As IntegerPro x = 3 až 8Pokud je rozsah („B“ a x). Hodnota jako „? [E-i] m“ PakRozsah ("B" & x). Font.Color = vbRedKonec IfDalší xEnd Sub |
Výsledkem tohoto kódu bude:
Programování VBA | Generátor kódu pracuje pro vás!
Použití znaku hash (#) ve VBA
Zástupný znak hash (#) nahrazuje jednu číslici v řetězci VBA. Můžeme se shodovat mezi 0 až 9.
12345678910 | Dílčí šekForNumber ()Dim x jako celé číslo, y jako celé čísloPro x = 3 až 8Pro y = 2 až 5Pokud ActiveSheet.Cells (x, y) jako "##", pakActiveSheet.Cells (x, y) .Font.Color = vbRedKonec IfDalší yDalší xEnd Sub |
Výše uvedený kód bude procházet všemi buňkami v rozsahu („B3: E8“) a změní barvu textu v buňce na ČERVENOU, pokud je v této buňce nalezeno dvouciferné číslo.
V níže uvedeném příkladu kód změní číslo pouze v případě, že poslední číslo je 9.
12345678910 | Sub CheckFor9 ()Dim x jako celé číslo, y jako celé čísloPro x = 3 až 8Pro y = 2 až 5Pokud ActiveSheet.Cells (x, y) jako „#9“, pakActiveSheet.Cells (x, y) .Font.Color = vbRedKonec IfDalší yDalší xEnd Sub |