![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 200
|
![]()
Вынужден обратиться с пустяковым вопросом.
Мне нужно разделить полный путь к файлу. То есть, имеется строка в ячейке A1 "D:\fol1\1.txt", я хочу, чтобы в строке А2 оказалось "D:" в строке А3 оказалось "fol1" в строке А4 оказалось "1.txt" Сделал бы сам, но не знаю как поэлементно обращаться к символам строки(в Паскале было такое: Код:
А вот как сделать это самое m[i]= ???? А нельзя ли использовать Экселевские примочки??? Я знаю что такая задача решается легко автоматически при загрузке текстового файла, если в качестве разделителя взять "\". Нельзя ли это как-нибудь приспособить к моему случаю??? |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 17.07.2009
Сообщений: 1,088
|
![]()
A1 = "D:\fol1\1.txt"
Код:
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 200
|
![]()
супер! как раз то, что нужно. можно один уточняющий вопрос: как мне провести эту процедуру в цикле, если я не знаю сколько раз будет встречаться /
То есть: Код:
Что мне поставить вместо MMM??? |
![]() |
![]() |
![]() |
#4 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
Sub DirSplit()
s = "D:\fol1\1.txt" c = 1 p1 = 1: p2 = 0 For ch = 1 To Len(s) If Mid(s, ch, 1) = "\" Then p2 = ch Cells(1, c) = Mid(s, p1, p2 - p1) c = c + 1 p1 = p2 + 1 End If Next Cells(1, c) = Mid(s, p1, 1000) End Sub Mid аналог паскалевского m[i]
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
Твой фрагмент,с исправлениями
Код:
UBound (функция) - возвращает значение наибольшего индекса для данной размерности массива
Анализ,обработка данных Недорого
Последний раз редактировалось doober; 12.08.2009 в 20:22. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 17.07.2009
Сообщений: 519
|
![]()
Всё несколько проще
Код:
А можно и без VBA (Предполагается что исходная строка в ячейке A1) Определим имя EVAL как =ВЫЧИСЛИТЬ("{""" &ПОДСТАВИТЬ($A$1;"\";""";""")&"""}" ) В ячейки A2:An поместим массивную формулу ={ТРАНСП(EVAL)} Отмечу, что последний приведённый способ имеет естественное ограничение на длину аргумента функции XLM ВЫЧИСЛИТЬ. Эта длина не может превосходить 256 символов. Последний раз редактировалось Aent; 13.08.2009 в 01:27. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 200
|
![]()
Код высший класс! Огромное спасибо. Но я если честно, чуть-чуть не так работает. Мне нужно, чтобы он разделял строку, помещая части пути в ту же строку. А у Aent он размещает их в тот же столбец.
То есть строку D:\fol1\1.txt он размещает так: D: fol1 1.txt А мне нужно, так: D: fol1 1.txt Пока мне удалось добиться только такого: Код:
D: D: D: Подскажите, пожалуйста, что нужно поправить??? |
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 17.07.2009
Сообщений: 519
|
![]()
Mephist, в первом посте вы пишите
Цитата:
Если нужно по столбцам, то код Код:
Последний раз редактировалось Aent; 13.08.2009 в 12:53. |
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 200
|
![]()
Спасибо большое. Очень помогли!!!
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Или еще проще, например, для ячейки "A1":
Код:
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск процессов по заданому критерию | imax | Помощь студентам | 0 | 01.05.2009 12:32 |
Удаление строк по определенному критерию | Franck | Microsoft Office Excel | 4 | 16.02.2009 11:27 |
Скопировать данные в новую книгу, согласно критерию | Iskin | Microsoft Office Excel | 12 | 01.12.2008 15:13 |
Поиск в *.txt по критерию | fudzy79 | Помощь студентам | 5 | 04.02.2008 09:14 |
Разделение строки | xTANATOSx | Общие вопросы Delphi | 3 | 31.10.2007 21:27 |