Знаки подстановки для шаблонов в VBA Excel. Знаки подстановки для методов Find и Replace. Знаки подстановки для оператора Like.
Как ни странно, но для метода Find и оператора Like в VBA Excel правила использования знаков подстановки для шаблонов поиска (Find) и сравнения строк (Like) различаются, причем оператор Like имеет некоторые преимущества. Например, знак # при сравнении строк с помощью оператора Like обозначает любую цифру, а при поиске методом Find — только самого себя.
Знаки подстановки для методов Find и Replace
Знаки в шаблоне | Совпадения в строке (диапазоне ячеек) |
---|---|
? | Знак вопроса обозначает любой отдельный символ |
* | Звездочка обозначает любое количество любых символов, в том числе ноль символов |
~ | Тильда ставится перед ?, * и ~, чтобы они обозначали сами себя (например, чтобы тильда в шаблоне обозначала сама себя, записать ее нужно дважды: ~~) |
Знаки подстановки для оператора Like
Знаки в шаблоне | Совпадения в сравниваемой строке |
---|---|
? | Знак вопроса обозначает любой отдельный символ, в том числе любую цифру |
* | Звездочка обозначает любое количество любых символов, в том числе ноль символов |
# | Решетка обозначает любую цифру (0-9) |
[СписокСимволов] | Любой отдельный знак, входящий в СписокСимволов |
[!СписокСимволов] | Любой отдельный знак, не входящий в СписокСимволов |
Знаки ?, *, # и [ (открывающая скобка) обозначают сами себя внутри квадратных скобок, а ] (закрывающая скобка) — вне квадратных скобок. Более подробно о знаках подстановки для оператора Like можно прочитать здесь.
Пример использования шаблона
Поиск в диапазоне ячеек, содержимое которых начинается с цифр (с помощью оператора Like):
1 2 3 4 5 6 7 8 |
Sub Primer() Dim myCell As Range For Each myCell In Range("A1:A6") If myCell Like "#*" Then myCell.Interior.color = vbGreen End If Next End Sub |
В этом примере шаблон «#*» состоит из решетки «#», которая обозначает одну первую цифру, и звездочки «*», которая обозначает любое количество любых символов, в том числе ноль символов. Если содержимое ячейки соответствует шаблону (начинается с цифры), ячейка окрашивается в зеленый цвет.
Более широкие возможности для работы с шаблонами заложены в регулярных выражениях, представленных объектом RegExp.
Полезная статья! Только примеров на мой взгляд не хватает. Не могу придумать как найти в ячейках все записи начинающиеся с цифр…
Привет, Александр!
Пример поиска в ячейках записей, начинающихся с цифр, добавил.
Очень познавательный сайт. А можете подсказать, как сделать вот такую штуку? Не получается никак, или я не владею VBA))
Есть большое количество строк. Нужно ту строку, где есть запятая, заключить в кавычки. Полностью каждую строку заключить в кавычки очень просто, а вот ту, где есть запятая… Ну никак не выходит. А строк очень много, чтобы это вручную делать…
Привет, Виктор!
Пример для строк, расположенных в ячейках выделенного диапазона:
Обсуждение закрыто.