В некоторых ситуациях задача извлечения необходимой информации из текста не столь проста, как кажется на первый взгляд 🤔 .
Решив использовать встроенные функции вы можете столкнуться с несколькими препятствиями, такими как неясность исходных данных, различное расположение нужной информации или изменяющаяся длина текста.
Например, номера идентификационных кодов (ИНН) у юридических и физических лиц имеют разную длину, что усложняет процесс автоматизации.
Так же отметим, что использование оператора Like зачастую не приносит нужного результата, т.к его действие ограничивается лишь проверкой наличия подстроки в тексте и не предоставляет функционала для ее извлечения.
Но, не стоит отчаиваться! 😎
Один из методов, который может помочь в решении этой задачи - это использование специализированных инструментов и алгоритмов, которые позволяют более эффективно и точно извлекать нужные фрагменты из текста.
Подробнее, рассказываем в обзоре 😉.
📢 Файл с примером размещен в конце статьи 🔽
▶️ RegExp: регулярные выражения VBA Excel
RegExp (Regular Expressions) - инструмент в VBA Excel, который позволяет осуществлять поиск и обработку текста на основе шаблонов.
С помощью регулярных выражений можно искать определенные шаблоны символов в строках, осуществлять замену, разделение и другие операции с текстом.
📝 Основные шаблоны для сопоставления символов
Использование RegExp значительно упрощает обработку данных, позволяя выполнить сложные операции с текстом более эффективно и гибко.
▶️ Как извлечь строку с помощью регулярных выражений: практический пример
В качестве исходных данных рассмотрим сведения о контрагентах:
🎯 Задачей данного примера является поиск КПП контрагента с последующей записью найденного значения в столбец В.
🔘 Пример макроса
⚙️ Как это работает:
- Объявление переменных: определяем переменные для работы с диапазонами ячеек, регулярным выражением и объектом для хранения найденных числовых значений.
- Создание регулярного выражения: создаем объект регулярного выражения с помощью функции CreateObject. Устанавливаем параметры поиска: глобальный поиск, игнорирование регистра и шаблон для поиска последовательностей из 9 цифр.
- Проход по каждой ячейке в столбце A: с помощью цикла For Each перебираем все ячейки в столбце A, начиная с первой и до последней непустой.
- Поиск совпадений в тексте ячейки: для каждой ячейки выполняется поиск совпадений с помощью метода Execute объекта регулярного выражения. Найденные числовые последовательности сохраняются в объект numbers.
- Запись найденных чисел в столбец B: если в ячейке были найдены числа (число совпадений больше нуля), то первое найденное значение записывается в соседнюю ячейку в столбце B, с помощью функции Offset.
➡️ Результат:
🔷 Подводя итог ...
Рассмотренный прием позволяет автоматизировать процесс поиска и записи числовых значений определенной длины из текстовых строк и может быть полезен при обработке данных в Excel.
🔔 В зависимости от конечной цели макрос может быть пополнен и изменен.
🔵 Ознакомиться с другими приемами VBA Excel вы можете в наших предыдущих обзорах 🔽
🙌 Оставайся с нами на связи и узнавай больше о других методах и приемах работы в Excel:
✅ СКАЧАТЬ ПРИМЕР 🔽