Split и Join в VBA - Разделение текстовых строк (Серия VBA 38)

preview_player
Показать описание
В этом видеоуроке мы рассмотрим функцию VBA Split и все связанные с ней подтемы: все её параметры и важнейшие возможности настройки, такие как vbBinaryCompare и vbTextCompare, родственную ей функцию Join и особенности параметра Limit. Всё это будем разбирать на наглядных практических примерах.

Хочешь поддержать мой канал? Это можно сделать с помощью функции «Спонсорство»:
Рекомендации по теме
Комментарии
Автор

Билял, очень круто объяснил, с приведением хороших примеров!!!

Stepanov_Kirill
Автор

Спасибо за видео! Я так понял Split - это аналог "Данные по столбцам", но с более крутым функционалом

Stas_Gutsal
Автор

Спасибо за урок. Все доступно и понятно. Сделал задание в том файле где мы изучали getOpenFilename, теперь там в отдельный столбец вставляется название выбранного файла, который был скопирован в основной файл.
.
.
.
For lngCounter1 = LBound(filename) To UBound(filename) 'цикл для каждого элемента массива с выбранными файлами
filename1 = Split(filename(lngCounter), "\") ' создаем новый массив и разделяем имя из первого массива по символу "\"
Dim upbound As Long ' переменная для выбора последнего элемента нового массива
upbound = UBound(filename1)
filename1 = Split(filename1(upbound), ".") ' разделяем последний элемент массива по символу "." так как этот элемент содержит название.расширение
Next lngCounter1
Set rowRange1 = ThisWorkbook.Worksheets(1).Cells(Rows.Count, 3).End(xlUp).Offset(1, 0) ' определение свободной ячейки для вставки имени файла
rowRange1 = rowRange1.Address
= filename1(0) 'вписываем имя копируемого файла

Kondratek.dragneel.mesh.
Автор

круто.... а у меня вопрос Вы не планируете в ближайших уроках разбор извлечения данных из сайтов через VBA и разбор обьекта InternetExplorer.Application ну или подобных ему

Serega_Zaicev
Автор

Спасибо, Билял! Очень остро нуждался в знании каким же методом мне вычленить из одной строки нужную информацию! Год начался с актуальных знаний. Ещё 3 вопроса есть: не снимешь ли ты видео, как сортировать большие массы данных и складывать их длины скажем по типу, по признакам ну то есть по нескольким критериям, желательно не менее трех? Считаю очень насущный вопрос. Также думаю многие столкнулись с проблемой англоязычных и русских букв или символов одинаковых по написанию, но VBA их считает разными. Как перевести английские в русские и наоборот с помощью VBA? Я нашел конечно решение на просторах интернета, но Я не понимаю как оно работает. И считаю надо этот пробел устранять. Спасибо

SerTur
Автор

В имени файла может быть точка, поэтому я отсек расширение файла с помощью цикла Do while по последней точке:
Do
strNameFile = Left(strNameFile, Len(strNameFile) - 1)
Loop Until Right(strNameFile, 1) = "."
strNameFile = Left(strNameFile, Len(strNameFile) - 1)

KarpovEvgeniy
Автор

Спасибо, Билял! С удовольствием смотрю Ваши уроки и учусь по ним. Подскажите а существует ли возможность в VBA работать с файлами, записанными в бинарном виде? Может что-то посоветуете почитать по этой теме?

julidem
Автор

Спасибо большое за труд!!! А будут еще уроки?

KarpovEvgeniy
Автор

Добрый день! Очень интересно, если честно далек от ексел, но просматривая ваши видео, понимаешь потенциал ресурса! Не могли бы дать ссылки на ваши видео где рассматриваются возможности решения моей задачи? В чем суть: имеется форма в ворде в виде текстовой шапки и таблицы с текстом. Текст в таблице необходимо каждый раз вставлять разный, но он есть ограниченным списком. Как его оформить в екселе, чтобы можно выбрать из выпадающего списка кликом по ячейке?

Egor_ZDE
Автор

А про связь по измерительными приборами по компортам будет?😢

che_pes
Автор

Опять же, хорошо, если точка отделяет только расширение от имени. Однако многие пользователи используют их и в именах файлов. Я думал, что задание подразумевает обработку и такой ситуации. Ну раз нет, тогда ладно.
Еще раз спасибо за курс. Пойду учить второй....

T.Ljapkin
Автор

Скажите, возможно ни реализовать на vba программу, которая в зависимости от результата ввода, сама находит или интерполирует нужное число из таблицы exel?

andreik
Автор

Почему у меня в watch window, когда я прогоняю код 1:28, ничего не работает и value - "out of context"? код один в один прописан как на видео. в чем может быть ошибка?

alexeyyarovoy
Автор

Спасибо за видео, данный вариант не сработает если в пути есть имя папки с точкой
Немного переделал так:

fullPath = "D:\Folder1\Program v.02.07\autorun.exe"
fnameArr = Split(fullPath, Application.PathSeparator)
fnameArr = Split(fnameArr(UBound(fnameArr)), ".")

alexh
Автор

Билял, небольшая ошибка в вашем решении вашей задачи по вырезанию только имени файла из пути к нему. Попробуйте прогнать через него вот такой путь А ведь он может существовать? :)
Это я к тому, что вы в одном из ваших уроков говорили о том, что нужно предусматривать всё. По-моему, это называется «защита от дурака» :)

Yurbas_Nikolkin
Автор

Здравствуйте, вот моё решение. Сначала я избавилась от "\", а потом из последнего параметра массива убрала "."
Dim strArray() As String
Dim strName As String
strArray = к шаблонам.pdf", "\")
strArray = Split(strArray(4), ".")
strName = strArray(0)

KyklaKolduna