Ребята, всем привет! 👋
Продолжаем изучать VBA Excel.
Раннее мы уже рассматривали обработку текстовых данных в Excel. В частности пример разделения Фамилии Имени и Отчества по столбцам. Но делали мы это исключительно при помощи формул Excel.
Сегодня в уроке рассмотрим 3 (три) примера решения как разделить текст с помощью VBA в Excel.
✍️ Если вы только начинаете осваивать VBA Excel мы уверены, каждый может найти для себя что-то новое!
✨ А прежде, чем мы начнем 📣 напомню, теперь у нас на канале есть удобный рубрикатор 👉 Быстрый поиск решения. Путеводитель по Excel, а все видео 📽 предыдущих уроков доступны и на YouTube.
📢 Скачать исходник с примером вы можете в конце статьи 🔽
Если вам требуется разделение данных по столбцам безусловно вы можете использовать формулы, но используя VBA, вы можете сделать этот процесс еще быстрее. Функция преобразования текста в столбцы может помочь вам разделить текстовые строки в Excel.
⏩ ПРИМЕР 1. Функция разделения (Split)
Рассмотрим пример , где строки содержащие данные разделены символом пробел (“ ”):
В VBA есть функция Split, которая может одномерный массив с нулевым значением, содержащий указанное количество подстрок. Параметрами функции являются строка, подлежащая разделению, и символ-разделитель, который разделяет вложенные строки.
В нашем примере исходные строки находятся в ячейках B3:B6, а данные разделены символом “пробел”.
📑 Вот код, который мы будем использовать:
Данный код перебирает каждую ячейку в выбранном диапазоне, использует функцию разделения для создания массива подстрок и использует другой цикл для распределения вложенных строк по соседним ячейкам в той же строке
🔔 Если используется иной разделитель (например, символ “|”) , то в строке кода StringArray = Split(Cell, " ") измените разделитель на символ, соответствующий вашим данным!!!
▶️ Запуск макроса
Добавляем кнопку для запуска макроса на лист.
Напомню, вы также можете добавить кнопку макроса на панель быстрого доступа или задать комбинацию клавиш
Далее, выберите область, содержащую данные и тестируем результат
✔️ Результат:
🔔 Для работы со статическим диапазоном/т.е чтобы не приходилось каждый раз выделять диапазон данных сделаем следующее:
- создадим именованный диапазон
Для этого выберите диапазон (включая заголовки) которому вы хотите присвоить имя. На вкладке "Формулы" выберите присвоить имя:
В диалоговом окне Создание имени укажите имя диапазона и нажмите 🆗:
📌Теперь ссылку на данный диапазон мы можем использовать в коде
- несколько изменим код:
✔️ Результат: Теперь выделение диапазона не требуется, а для запуска макроса нам достаточно нажать кнопку
⏩ ПРИМЕР 2. Функция преобразования: Преобразование текста в столбцы с одним разделителем
В VBA вы можете вызвать функцию преобразования текста в столбцы Excel. Метод может быть вызван для диапазона.
Рассмотрим пример , где строки содержащие данные разделены символом “ \”:
📑 Вот код, который мы будем использовать:
Где, аргумент Destination определяет верхнюю левую ячейку для разделяемых подстрок.
Поскольку мы хотим разделить ячейки с помощью разделителя, аргумент DataType должен быть xlDelimited .
Также наш пример кода устанавливает значение Other как True, а OtherChar как “\”.
🔔 Если используется иной разделитель (например, символ “|”) , то в строке кода OtherChar:="\" измените разделитель на символ, соответствующий вашим данным!!!
✔️ Результат:
🔔 Для работы со статическим диапазоном, аналогично рассмотренному примеру выше:
- создадим именованный диапазон
- несколько изменим код:
✔️ Результат: Теперь выделение диапазона не требуется, а для запуска макроса нам достаточно нажать кнопку
⏩ ПРИМЕР 3. Преобразование текста в столбцы с несколькими разделителями
Метод преобразования текста в столбцы позволяет использовать сразу несколько встроенных разделителей. Это табуляция, точка с запятой, запятая и пробел.
Рассмотрим пример , где строки содержащие данные разделены различными символами:
📑 Вот код, который мы будем использовать:
Установите для любого соответствующего аргумента значение True, чтобы включить разделитель. Имена аргументов совпадают с символом.
✔️ Результат:
🔔 Для работы со статическим диапазоном, аналогично рассмотренному примеру выше:
- создадим именованный диапазон
- несколько изменим код:
✔️ Результат: Теперь выделение диапазона не требуется, а для запуска макроса нам достаточно нажать кнопку
А на этом сегодня все. 👏 Теперь вы знаете как разделить текст по столбцам при помощи VBA.
Мы надеемся, что Вы нашли этот урок полезным ⭐️⭐️⭐️⭐️⭐️
📝 Продолжение следует...
Подписывайтесь на канал, чтобы не пропустить новые уроки и полезные фишки Excel. Следите за нашими новостями и вы узнаете больше о VBA и Excel в частности.
🔔 Наша команда очень заинтересована в составлении качественного и полезного контента, а потому:
✔️ Понравился урок!? - Поблагодарите автора лайком 👍
✔️ Остались вопросы или есть свое решение!? - Оставляйте комментарий 💬
✔️ Требуется иное решение!? - ✏️ Пишите в комментариях 💬 свой вопрос и мы его обязательно рассмотрим в ближайшей теме обзора.
Нам важна Ваша обратная связь 💝 так мы можем анализировать на сколько данный материал был Вам полезен.
🌺🌺🌺 С наилучшими пожеланиями 🤝 команда excel_easy