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