Добро пожаловать на борт нашего канала, друзья! 👋 Мы ценим вашу поддержку и благодарим за подписку!
В продолжение темы "Создание пользовательских функций" Excel сегодня разбираем примеры функций позволяющих разделять текст и извлекать слова из предложений.
📢 Файл с исходным кодом доступен для загрузки в конце этой статьи 🔽
▶️ Как извлечь слова из текста (предложения)
Представленная функция ExtractWords() извлекает слова из текста и возвращает их в виде массива:
ExtractWords() возвращает массив слов принимая один аргумент text, который является строкой текста.
Чтобы разделить текст на слова для данной функции применен метод Split. Массив words изменяет свой размер с помощью ReDim Preserve, чтобы соответствовать числу столбцов в вызывающей ячейке:
🔔 ExtractWords() извлекает из ячейки A1 слова и распределяет их по выделенным ячейкам. Если слов в фразе (предложении) меньше, чем число предопределенных ячеек, оставшиеся ячейки будут пустыми!
▶️ Как извлечь нужное слово из текстовой строки
Представленная функция GetWord() извлекает определённое слово из текстовой строки и возвращает его:
GetWord() принимает два аргумента: text - строку текста и wordNum - позиция слова (нумерация начинается с 1!).
Внутри функции используется метод Split, чтобы разделить текст на слова по пробелам. Затем проверяется корректность номера (позиции) слова. Если он некорректен (меньше 1 или больше чем слов), то пользователю передается сообщение об ошибке, а работа функии завершается. Иначе возвращается нужное слово.
🔔 Чтобы вызвать GetWord() из другого кода VBA, используйте следующий синтаксис:
▶️ Как определить сколько слов в ячейке
Представленная функция CountWords() возвращает количество слов в тексте из указанной ячейки:
CountWords() принимает ссылку на ячейку и возвращает количество слов в этом тексте. Она использует метод Split для разделения текста на слова и функцию UBound для подсчета слов. Поскольку индексы массивов начинаются с 0, к этому значению прибавляется 1, чтобы получить количество слов.