Tento tutoriál ukáže, ako používať zástupné znaky vo VBA.
Zástupné znaky sa používajú vo všetkých programovacích jazykoch a databázových aplikáciách, ako je SQL Server. Zástupný znak možno definovať ako symbol, ktorý sa používa na nahradenie jedného alebo viacerých znakov v textovom reťazci. Tento textový reťazec - „mo*“ - napríklad nájde slová mama, myš, los, mama atď .; zatiaľ čo tento textový reťazec „mo?“ nájde ako zástupný znak iba slovo mama? nahradí iba jeden znak.
S operátorom Like používame zástupné znaky, čo je jednoduchšia alternatíva k VBA Regex.
Použitie zástupného znaku Asterix (*) vo VBA
Zástupný znak Asterix nahrádza jeden alebo viac znakov v reťazci VBA.
Pozrime sa na nasledujúci rozsah buniek v programe Excel:
Použitím zástupného znaku Asterix v našom kóde VBA dokážeme nájsť všetky krstné mená, ktoré začínajú na „M“, a zmeniť farbu textu na červenú.
12345678 | Vedľajšia kontrolaForM ()Dim x As IntegerPre x = 3 až 8Ak je rozsah („B“ a x). Potom zadajte hodnotu ako „M*“Rozsah ("B" & x) .Font.Color = vbRedKoniec AkDalej xKoniec pod |
Preto sme prešli rozsahom a našli sme všetky prvé mená, ktoré začínajú písmenom M, pretože náš reťazec zástupných znakov je „M*”
Výsledok spustenia kódu vyššie je uvedený nižšie.
Ak by sme použili zástupný reťazec „Ma*“ - potom by sa zmenili iba prvé mená v B3 a B4.
Použitie zástupného znaku otáznika (?) Vo VBA
Otáznik nahradí jeden znak v reťazci VBA.
Zvážte nasledujúce údaje:
Na nájdenie akýchkoľvek krstných mien, ktoré sa končia na „im“, môžeme použiť zástupný reťazec „? Im“
12345678 | Vedľajšia kontrolaForIM ()Dim x As IntegerPre x = 3 až 8Ak je rozsah („B“ a x). Hodnota sa páči „? Im“ PotomRozsah ("B" & x) .Font.Color = vbRedKoniec AkDalej xKoniec pod |
Výsledok spustenia tohto kódu je uvedený nižšie:
Použitie [znakového zoznamu] ako zástupného znaku
Vyššie uvedený príklad môže byť mierne upravený, aby sme okrem zoznamu povolených znakov mohli použiť aj otáznik. Reťazec zástupných znakov je preto možné zmeniť na „? [E-i] m“, kde prvým znakom môže byť čokoľvek, druhým znakom musí byť znak medzi e a i a posledným písmenom musí byť znak „m“. Povolené sú iba 3 znaky.
12345678 | Sub CharListTest ()Dim x As IntegerPre x = 3 až 8Ak je rozsah („B“ a x). Hodnota ako „? [E-i] m“ PotomRozsah ("B" & x) .Font.Color = vbRedKoniec AkDalej xKoniec pod |
Výsledkom tohto kódu bude:
Programovanie VBA | Generátor kódu pracuje za vás!
Použitie hash (#) zástupných znakov vo VBA
Zástupný znak hash (#) nahrádza jednu číslicu v reťazci VBA. Môžeme sa zhodovať medzi 0 až 9.
12345678910 | Vedľajšia kontrolaForNumber ()Dim x ako celé číslo, y ako celé čísloPre x = 3 až 8Pre y = 2 až 5Ak sa ActiveSheet.Cells (x, y) páči „##“ PotomActiveSheet.Cells (x, y) .Font.Color = vbRedKoniec AkĎalšie yDalej xKoniec pod |
Vyššie uvedený kód bude prechádzať všetkými bunkami v rozsahu („B3: E8“) a zmení farbu textu v bunke na ČERVENÚ, ak sa v tejto bunke nachádza dvojciferné číslo.
V nižšie uvedenom príklade kód zmení číslo iba vtedy, ak je posledné číslo 9.
12345678910 | Sub CheckFor9 ()Dim x ako celé číslo, y ako celé čísloPre x = 3 až 8Pre y = 2 až 5Ak sa ActiveSheet.Cells (x, y) páči „#9“, potomActiveSheet.Cells (x, y) .Font.Color = vbRedKoniec AkĎalšie yDalej xKoniec pod |