Цей підручник продемонструє, як використовувати символи підстановки у VBA.
Підстановні знаки використовуються у всіх мовах програмування та застосунках бази даних, таких як SQL Server. Підстановку можна визначити як символ, який використовується для заміни одного або декількох символів у текстовому рядку. Наприклад, цей текстовий рядок - “mo*” - знайде слова мама, миша, лось, мама тощо; тоді як цей текстовий рядок "mo?" знайдете лише слово мама як підстановку? замінює лише один символ.
Ми використовуємо символи підстановки з оператором Like, що є простішою альтернативою VBA Regex.
Використання підстановки Asterix (*) у VBA
Підстановка Asterix замінює один або кілька символів у рядку VBA.
Давайте розглянемо наступний діапазон клітинок в Excel:
Використовуючи підстановку Asterix у нашому коді VBA, ми можемо знайти всі імена, які починаються на “M” і змінюють колір тексту на червоний.
12345678 | SubForM ()Dim x як ціле числоДля х = 3 до 8Якщо Діапазон ("B" & x). Значення типу "M*" ТодіДіапазон ("B" & x). Font.Color = vbRedЗакінчити ЯкщоДалі xEnd Sub |
Тому ми переглянули діапазон і знайшли всі перші імена, які починаються на літеру М, оскільки наш рядок із символом підстановки - "М*”
Результат виконання вищевказаного коду показаний нижче.
Якби ми використовували підстановочний рядок “Ma*” - тоді змінювалися б лише імена у B3 та B4.
Використання підстановочного знака (?) У VBA
Знак питання замінить один символ у рядку VBA.
Розглянемо наступні дані:
Ми можемо використовувати підстановочний рядок “? Im”, щоб знайти будь -які імена, що закінчуються на “im”
12345678 | Sub CheckForIM ()Dim x як ціле числоДля х = 3 до 8Якщо діапазон ("B" & x). Значення як "? Im" ТодіДіапазон ("B" & x). Font.Color = vbRedЗакінчити ЯкщоДалі xEnd Sub |
Результат запуску цього коду показаний нижче:
Використання [списку символів] як підстановки
Наведений вище приклад можна трохи змінити, щоб ми могли використовувати знак питання, на додаток до списку символів дозволених символів. Тому рядок підстановки можна змінити на "? [E-i] m", де перший символ може бути будь-яким, другий символ повинен бути символом між e та i, а остання буква-"m". Допускається лише 3 символи.
12345678 | Sub CharListTest ()Dim x як ціле числоДля х = 3 до 8Якщо Range ("B" & x). Значення "Like"? [E-i] m "ТодіДіапазон ("B" & x). Font.Color = vbRedЗакінчити ЯкщоДалі xEnd Sub |
Результатом цього коду буде:
Програмування VBA | Генератор коду працює для вас!
Використання символу підстановки хеш (#) у VBA
Підстановний знак хешу (#) замінює одну цифру у рядку VBA. Ми можемо відповідати від 0 до 9.
12345678910 | Sub CheckForNumber ()Dim x як ціле число, y як ціле числоДля х = 3 до 8Для y = 2-5Якщо ActiveSheet.Cells (x, y) Подобається "##" ТодіActiveSheet.Cells (x, y) .Font.Color = vbRedЗакінчити ЯкщоДалі yДалі xEnd Sub |
Наведений вище код прокрутить усі комірки діапазону (“B3: E8”) і змінить колір тексту в комірці на ЧЕРВОНИЙ, якщо в цій клітинці знайдеться двоцифрове число.
У наведеному нижче прикладі код змінить номер, лише якщо останнім є число 9.
12345678910 | Sub CheckFor9 ()Dim x як ціле число, y як ціле числоДля х = 3 до 8Для y = 2-5Якщо ActiveSheet.Cells (x, y), як "#9" ТодіActiveSheet.Cells (x, y) .Font.Color = vbRedЗакінчити ЯкщоДалі yДалі xEnd Sub |