Я пытаюсь найти в своей таблице Excel любую ячейку, значение которой начинается с числа, за которым следует точка, но это не работает.
Кто-нибудь знает почему нет?
Период . имеет особое значение в регулярном выражении, это означает "Соответствует любому отдельному символу".
Если вы хотите соответствовать буквальному периоду . вам нужно избежать особого значения. \ используется в качестве escape-символа (например, "\." , "\\").
Таким образом, ваше выражение должно быть "[0-9]\." чтобы соответствовать буквальному периоду . ,
Чтобы сопоставить более одной цифры, за которой следует точка, используйте "[0-9]+\." (+ используется, чтобы соответствовать предыдущему выражению один или несколько раз).
См. VBA RegEx: Как оценить и использовать «Регулярные выражения» для получения дополнительной информации.
Примечание. Насколько мне известно, cells.find() не поддерживает регулярные выражения.
Вам нужно использовать класс RegExp .
Регулярные выражения (RegExp) - это класс, который предлагает невероятно мощные возможности синтаксического анализа текста, в частности, позволяет пользователям находить (и даже заменять) подстроки в больших текстовых записях, которые соответствуют определенному шаблону. Эта статья содержит основную информацию о реализации RegExp на VBScript и о том, как ее использовать, чтобы получить надежные возможности анализа текста в проектах Visual Basic 6 (VB6) и Visual Basic для приложений (VBA). Обладая небольшим знанием правил и некоторым воображением, вы можете создавать невероятно гибкие и / или сложные шаблоны.
...
Добавив эти функции в свои проекты VB6/VBA, вы можете быстро и легко внедрить функции RegExp в свои приложения. Если вы являетесь пользователем Microsoft Office, вы даже можете использовать эти функции в формулах рабочего листа для Microsoft Excel или в запросах в Microsoft Access.
Источник Использование регулярных выражений в Visual Basic для приложений и Visual Basic 6 для получения дополнительной информации.