Найти тему

📌 3 способа разделить текст в Excel по столбцам (макросы VBA)

Оглавление

Ребята, всем привет! 👋

Продолжаем изучать VBA Excel.

Раннее мы уже рассматривали обработку текстовых данных в Excel. В частности пример разделения Фамилии Имени и Отчества по столбцам. Но делали мы это исключительно при помощи формул Excel.

Сегодня в уроке рассмотрим 3 (три) примера решения как разделить текст с помощью VBA в Excel.

✍️ Если вы только начинаете осваивать VBA Excel мы уверены, каждый может найти для себя что-то новое!

✨ А прежде, чем мы начнем 📣 напомню, теперь у нас на канале есть удобный рубрикатор 👉 Быстрый поиск решения. Путеводитель по Excel, а все видео 📽 предыдущих уроков доступны и на YouTube.

Макросы VBA: 3 способа разделить текст в Excel по столбцам
Макросы VBA: 3 способа разделить текст в Excel по столбцам

📢 Скачать исходник с примером вы можете в конце статьи 🔽

3 способа разделить текст в Excel по столбцам
3 способа разделить текст в Excel по столбцам

Если вам требуется разделение данных по столбцам безусловно вы можете использовать формулы, но используя VBA, вы можете сделать этот процесс еще быстрее. Функция преобразования текста в столбцы может помочь вам разделить текстовые строки в Excel.

ПРИМЕР 1. Функция разделения (Split)

Рассмотрим пример , где строки содержащие данные разделены символом пробел (“ ”):

-3
В VBA есть функция Split, которая может одномерный массив с нулевым значением, содержащий указанное количество подстрок. Параметрами функции являются строка, подлежащая разделению, и символ-разделитель, который разделяет вложенные строки.

В нашем примере исходные строки находятся в ячейках B3:B6, а данные разделены символом “пробел”.

📑 Вот код, который мы будем использовать:

Пример использования Функции разделения (Split)
Пример использования Функции разделения (Split)

Данный код перебирает каждую ячейку в выбранном диапазоне, использует функцию разделения для создания массива подстрок и использует другой цикл для распределения вложенных строк по соседним ячейкам в той же строке

🔔 Если используется иной разделитель (например, символ “|”) , то в строке кода StringArray = Split(Cell, " ") измените разделитель на символ, соответствующий вашим данным!!!

▶️ Запуск макроса

Добавляем кнопку для запуска макроса на лист.

Напомню, вы также можете добавить кнопку макроса на панель быстрого доступа или задать комбинацию клавиш

Далее, выберите область, содержащую данные и тестируем результат

✔️ Результат:

-5

🔔 Для работы со статическим диапазоном/т.е чтобы не приходилось каждый раз выделять диапазон данных сделаем следующее:

  • создадим именованный диапазон

Для этого выберите диапазон (включая заголовки) которому вы хотите присвоить имя. На вкладке "Формулы" выберите присвоить имя:

-6

В диалоговом окне Создание имени укажите имя диапазона и нажмите 🆗:

-7

📌Теперь ссылку на данный диапазон мы можем использовать в коде

  • несколько изменим код:
Добавим ссылку на именованный диапазон в код
Добавим ссылку на именованный диапазон в код

✔️ Результат: Теперь выделение диапазона не требуется, а для запуска макроса нам достаточно нажать кнопку

-9

⏩ ПРИМЕР 2. Функция преобразования: Преобразование текста в столбцы с одним разделителем

В VBA вы можете вызвать функцию преобразования текста в столбцы Excel. Метод может быть вызван для диапазона.

Рассмотрим пример , где строки содержащие данные разделены символом “ \”:

-10

📑 Вот код, который мы будем использовать:

-11

Где, аргумент Destination определяет верхнюю левую ячейку для разделяемых подстрок.

Поскольку мы хотим разделить ячейки с помощью разделителя, аргумент DataType должен быть xlDelimited .

-12

Также наш пример кода устанавливает значение Other как True, а OtherChar как “\”.

🔔 Если используется иной разделитель (например, символ “|”) , то в строке кода OtherChar:="\" измените разделитель на символ, соответствующий вашим данным!!!

✔️ Результат:

-13

🔔 Для работы со статическим диапазоном, аналогично рассмотренному примеру выше:

  • создадим именованный диапазон
-14
  • несколько изменим код:
-15

✔️ Результат: Теперь выделение диапазона не требуется, а для запуска макроса нам достаточно нажать кнопку

-16

⏩ ПРИМЕР 3. Преобразование текста в столбцы с несколькими разделителями

Метод преобразования текста в столбцы позволяет использовать сразу несколько встроенных разделителей. Это табуляция, точка с запятой, запятая и пробел.

Рассмотрим пример , где строки содержащие данные разделены различными символами:

-17

📑 Вот код, который мы будем использовать:

-18

Установите для любого соответствующего аргумента значение True, чтобы включить разделитель. Имена аргументов совпадают с символом.

✔️ Результат:

-19

🔔 Для работы со статическим диапазоном, аналогично рассмотренному примеру выше:

  • создадим именованный диапазон
-20
  • несколько изменим код:
-21

✔️ Результат: Теперь выделение диапазона не требуется, а для запуска макроса нам достаточно нажать кнопку

-22

А на этом сегодня все. 👏 Теперь вы знаете как разделить текст по столбцам при помощи VBA.

Мы надеемся, что Вы нашли этот урок полезным ⭐️⭐️⭐️⭐️⭐️

📝 Продолжение следует...

Подписывайтесь на канал, чтобы не пропустить новые уроки и полезные фишки Excel. Следите за нашими новостями и вы узнаете больше о VBA и Excel в частности.

🔔 Наша команда очень заинтересована в составлении качественного и полезного контента, а потому:

✔️ Понравился урок!? - Поблагодарите автора лайком 👍

✔️ Остались вопросы или есть свое решение!? - Оставляйте комментарий 💬

✔️ Требуется иное решение!? - ✏️ Пишите в комментариях 💬 свой вопрос и мы его обязательно рассмотрим в ближайшей теме обзора.

Нам важна Ваша обратная связь 💝 так мы можем анализировать на сколько данный материал был Вам полезен.

🌺🌺🌺 С наилучшими пожеланиями 🤝 команда excel_easy

➡️ СКАЧАТЬ ПРИМЕР ФАЙЛА

Подписывайтесь на канал, чтобы не пропустить новые уроки и полезные фишки Excel
Подписывайтесь на канал, чтобы не пропустить новые уроки и полезные фишки Excel