Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2017, 20:14   #1
TatarinNV
 
Регистрация: 17.08.2017
Сообщений: 3
По умолчанию Как загрузить текстовый файл с определенной строки и разделить его на столбцы

Добрый вечер, подскажите пожалуйста, как написать макрос загрузки текстового файла, загрузив его с определенной строки и разделить его на столбцы.
Файл постоянно обновляется.
Файл во вложении.
Вложения
Тип файла: txt Замер.txt (59.4 Кб, 171 просмотров)
TatarinNV вне форума Ответить с цитированием
Старый 21.08.2017, 05:20   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно использовать любой из вариантов "по вкусу":
Код:
Sub ReadTxt()
    Dim f As String: Application.ScreenUpdating = False
    f = ThisWorkbook.Path & "\Замер.txt" 'Путь и имя файла
    Workbooks.OpenText f, Origin:=866, StartRow:=40, DataType:=xlDelimited, _
        TextQualifier:=xlNone, ConsecutiveDelimiter:=True, Space:=True
    [B:E].Copy ThisWorkbook.Sheets(1).[A1]
    ActiveWorkbook.Close False
    ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
End Sub

Sub ReadTxt2()
    Dim f As String, i As Long, t: Application.ScreenUpdating = False
    f = ThisWorkbook.Path & "\Замер.txt" 'Путь и имя файла
    Set t = CreateObject("Scripting.FileSystemObject").OpenTextFile(f, 1)
    For i = 1 To 39: t.SkipLine: Next 'Пропускаем первые 39 строк
    i = 1
    Do While t.AtEndOfStream <> True
        Cells(i, 1) = Trim(t.ReadLine): i = i + 1
    Loop
    t.Close
    [A:A].TextToColumns [A1], xlDelimited, xlNone, True, Space:=True
    ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 21.08.2017, 20:04   #3
TatarinNV
 
Регистрация: 17.08.2017
Сообщений: 3
По умолчанию

Спасибо, но не получается, ошибка пути файла
TatarinNV вне форума Ответить с цитированием
Старый 22.08.2017, 04:48   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

ну так укажите правильный путь к своему файлу

вместо
f = ThisWorkbook.Path & "\Замер.txt" 'Путь и имя файла

напишите
f = "Полный путь к вашему текстовому файлу"
EducatedFool вне форума Ответить с цитированием
Старый 22.08.2017, 04:57   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

В предлагаемых примерах подразумевается, что текстовый файл находится в той же папке, что и книга с этим макросом.
Если это не так, то либо явно укажите в коде макроса полный требуемый путь к файлу, присвоив его переменной f, например:
Код:
f = "C:\Temp\Замер.txt"
, либо используйте диалоговое окно для возможности выбора требуемого текстового файла для открытия. Для этого, строку кода
Код:
f = ThisWorkbook.Path & "\Замер.txt"
замените на блок
Код:
With Application.FileDialog(msoFileDialogOpen)
    .Filters.Add "Text Files", "*.txt", 1: .Show
    If .SelectedItems.Count = 0 Then Exit Sub Else f = .SelectedItems(1)
End With
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 22.08.2017, 10:49   #6
TatarinNV
 
Регистрация: 17.08.2017
Сообщений: 3
По умолчанию

Спасибо. Все работает
TatarinNV вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
StringGrid. Сохранить в текстовый файл определённые столбцы ( Delphi ) hrustnik Помощь студентам 2 27.06.2014 08:11
Загрузить текстовый файл большого размера в listbox elagin Общие вопросы Delphi 1 04.08.2012 14:49
Дан текстовый файл.Напечатать все его строки начинающиеся с символа "Т". Richik123 Паскаль, Turbo Pascal, PascalABC.NET 2 31.05.2012 19:37
Как правильно разделить столбцы csv-файла? ondar Общие вопросы Delphi 2 11.06.2011 20:24
Как загрузить текстовый файл в Delphi? aidyn Помощь студентам 7 30.05.2007 20:56