Acest tutorial va arăta cum să utilizați metacaracterele în VBA.
Wildcard-urile sunt utilizate în toate limbajele de programare și aplicațiile de baze de date, cum ar fi SQL Server. Un wildcard poate fi definit ca un simbol care este utilizat pentru a înlocui unul sau mai multe caractere dintr-un șir de text. De exemplu, acest șir de text - „mo *” - va găsi cuvintele mama, șoricel, elan, mami etc; în timp ce acest șir de text „mo?” va găsi cuvântul mama doar ca metacaracter? înlocuiește un singur personaj.
Folosim metacaractere cu Like Operator, care este o alternativă mai ușoară la VBA Regex.
Utilizarea wildcard-ului Asterix (*) în VBA
Comodul Asterix înlocuiește unul sau mai multe caractere dintr-un șir VBA.
Să vedem următoarea gamă de celule din Excel:
Folosind un wildcard Asterix în codul nostru VBA, putem găsi toate prenumele care încep cu „M” și putem schimba culoarea textului în roșu.
12345678 | Sub CheckForM ()Dim x Ca întregPentru x = 3 - 8Dacă Range ("B" & x). Valoare Ca "M *" AtunciGama ("B" & x) .Font.Color = vbRedEnd IfUrmătorul xSfârșitul Sub |
Prin urmare, am parcurs zona și am găsit toate prenumele care încep cu litera M, deoarece șirul nostru de caractere wildcard este „M *”
Rezultatul executării codului de mai sus este prezentat mai jos.
Dacă ar fi să folosim șirul de caractere „Ma *” - atunci doar prenumele din B3 și B4 s-ar schimba.
Folosind semnul întrebării (?) Wildcard în VBA
Semnul de întrebare va înlocui un singur caracter într-un șir VBA.
Luați în considerare următoarele date:
Putem folosi șirul comodin „? Im” pentru a găsi orice prenume care se termină cu „im”
12345678 | Sub CheckForIM ()Dim x Ca întregPentru x = 3 - 8Dacă Range („B” & x). Valoare Ca „? Im” AtunciGama ("B" & x) .Font.Color = vbRedEnd IfUrmătorul xSfârșitul Sub |
Rezultatul executării acestui cod este prezentat mai jos:
Se folosește [lista de caractere] ca wildcard
Exemplul de mai sus poate fi modificat ușor pentru a ne permite să folosim semnul întrebării, pe lângă o listă de caractere cu caractere permise. Șirul de caractere wildcard poate fi, prin urmare, modificat în „? [E-i] m”, unde primul caracter poate fi orice, al doilea caracter trebuie să fie un caracter între e și i, iar ultima literă trebuie să fie caracterul „m”. Sunt permise doar 3 caractere.
12345678 | Sub CharListTest ()Dim x Ca întregPentru x = 3 - 8Dacă Range ("B" & x). Valoare Ca "? [E-i] m" AtunciGama ("B" & x) .Font.Color = vbRedEnd IfUrmătorul xSfârșitul Sub |
Rezultatul acestui cod ar fi:
Programare VBA | Generatorul de coduri funcționează pentru dvs.!
Folosind hash (#) Wildcard în VBA
Comprimatul hash (#) înlocuiește o singură cifră într-un șir VBA. Putem egala între 0 și 9.
12345678910 | Sub CheckForNumber ()Dim x Ca întreg, y Ca întregPentru x = 3 - 8Pentru y = 2 până la 5Dacă ActiveSheet.Cells (x, y) Ca „##” AtunciActiveSheet.Cells (x, y) .Font.Color = vbRedEnd IfUrmătorul yUrmătorul xSfârșitul Sub |
Codul de mai sus va parcurge toate celulele din interval („B3: E8”) și va schimba culoarea textului dintr-o celulă în ROȘU dacă se găsește un număr din două cifre în acea celulă.
În exemplul de mai jos, codul va schimba numărul numai dacă ultimul număr este un 9.
12345678910 | Sub CheckFor9 ()Dim x Ca întreg, y Ca întregPentru x = 3 - 8Pentru y = 2 până la 5Dacă ActiveSheet.Cells (x, y) Ca "# 9" AtunciActiveSheet.Cells (x, y) .Font.Color = vbRedEnd IfUrmătorul yUrmătorul xSfârșitul Sub |