Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поиск и извлечение необходимых данных из .txt - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск и извлечение необходимых данных из .txt (Макросы/Sub)
Поиск и извлечение необходимых данных из .txt
akobir Дата: Суббота, 04.08.2018, 11:56 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 196
Репутация: 9 ±
Замечаний: 0% ±

Excel 2010
Всем привет!

Поковырял поиск, часть нужной информации нашел, но всё же вопросы остались, с чем я и пришел. :)
Начинаю погружаться в мир извлечения данных из .txt-файлов, в связи в возникшей потребностью.

txt-файлы содержат до 100 строк в один столбец, поэтому решил, что нужно писать макрос.
Набрел на код следующего характера:
[vba]
Код
Open filename For Input Access Read As #k1
        While Not EOF(k1)
            Line Input #k1, s
                If s Like "ИСКОМЫЙ ТЕКСТ" Then
                    
                End If
        Wend
[/vba]

Отлично работает, но для меня осталось несколько неразрешенных вопросов.
Как узнать номер строки, где был найден "ИСКОМЫЙ ТЕКСТ" и как продолжить поиск в цикле, начиная со строки с "ИСКОМЫМ ТЕКСТОМ"?

Пример не стал прикладывать, так как вопрос, как мне кажется, общего характера.

Буду признателен!


e-mail: akobir.ismailov@gmail.com
 
Ответить
СообщениеВсем привет!

Поковырял поиск, часть нужной информации нашел, но всё же вопросы остались, с чем я и пришел. :)
Начинаю погружаться в мир извлечения данных из .txt-файлов, в связи в возникшей потребностью.

txt-файлы содержат до 100 строк в один столбец, поэтому решил, что нужно писать макрос.
Набрел на код следующего характера:
[vba]
Код
Open filename For Input Access Read As #k1
        While Not EOF(k1)
            Line Input #k1, s
                If s Like "ИСКОМЫЙ ТЕКСТ" Then
                    
                End If
        Wend
[/vba]

Отлично работает, но для меня осталось несколько неразрешенных вопросов.
Как узнать номер строки, где был найден "ИСКОМЫЙ ТЕКСТ" и как продолжить поиск в цикле, начиная со строки с "ИСКОМЫМ ТЕКСТОМ"?

Пример не стал прикладывать, так как вопрос, как мне кажется, общего характера.

Буду признателен!

Автор - akobir
Дата добавления - 04.08.2018 в 11:56
Hugo Дата: Суббота, 04.08.2018, 13:23 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2862
Репутация: 641 ±
Замечаний: 0% ±

Номер строки можно узнать так - считаете сколько раз произошло Line Input.
Насчёт цикла - можно пропускать все строки до этого определённого выше числа.
Вообще я предпочитаю использовать scripting.filesystemobject, тем более что если тут строк до сотни, то можно сразу всё взять в массив, а далее его крутить как угодно.
Например
[vba]
Код

массив = Split(CreateObject("Scripting.FileSystemObject").Getfile(iTempPath$).OpenasTextStream(1).ReadAll, vbNewLine)
[/vba]


excel@nxt.ru
webmoney: E265281470651 R418926282008 Z422237915069


Сообщение отредактировал Hugo - Суббота, 04.08.2018, 13:26
 
Ответить
СообщениеНомер строки можно узнать так - считаете сколько раз произошло Line Input.
Насчёт цикла - можно пропускать все строки до этого определённого выше числа.
Вообще я предпочитаю использовать scripting.filesystemobject, тем более что если тут строк до сотни, то можно сразу всё взять в массив, а далее его крутить как угодно.
Например
[vba]
Код

массив = Split(CreateObject("Scripting.FileSystemObject").Getfile(iTempPath$).OpenasTextStream(1).ReadAll, vbNewLine)
[/vba]

Автор - Hugo
Дата добавления - 04.08.2018 в 13:23
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск и извлечение необходимых данных из .txt (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!