Страницы: 1
RSS
Заполнение таблицы из текстового файла
 
Здравствуйте, подскажите пожалуйста возможно ли перенести данные из текстового файла в таблицу.
 
Данные/Из текста/С разделителями (кодировка Windows ANSI)/Символ-разделитель точка с запятой/если нужно - поиграться с форматом столбцов.
Я не волшебник, я только учусь.
 
Код
Sub ЧтениеТХТ()
    Dim fso As Object
    Set fso = CreateObject("scripting.filesystemobject")
    Dim s As String
    Dim a As Variant
    Dim y As Long
    Dim ts As Object
    Set ts = fso.OpenTextFile("C:\tmp\тфс_1020192.txt", ForReading)
    y = 2
    Do
        If ts.AtEndOfStream Then Exit Do
        s = ts.ReadLine
        If s <> "" Then
            a = Split(s, ";")
            Cells(y, 1).Resize(1, UBound(a)) = a
            Erase a
        End If
        y = y + 1
        DoEvents
    Loop
    ts.Close
End Sub
Вариант макросом.
 
Цитата
Вариант макросом.
А как макросом если каждый месяц раз название файла меняется?
Изменено: shasha1111 - 12.11.2019 11:09:03
 
Как я понял можно попробовать сделать форму для загрузки файла в таблицу для удобства.
 
Вариант на Power Query:
В ячейку адрес пишем путь к файлу, в шапку вносим нужные заголовки для итоговой таблицы. Потом по рыжей табличке снизу жмакаем ПКМ и выбираем "Обновить".
Вот горшок пустой, он предмет простой...
 
Цитата
shasha1111 написал:
А как макросом если каждый месяц раз название файла меняется?
Добавил окно выбора файла.
Код
Sub ЧтениеТХТ()    Dim avFiles
    avFiles = Application.GetOpenFilename _
                ("Text files(*.txt),*.txt", 1, "Выбрать TXT файлы", , False)
    If VarType(avFiles) = vbBoolean Then
        'была нажата кнопка отмены - выход из процедуры
        Exit Sub
    End If
    'avFiles - примет тип String
    'MsgBox "Выбран файл: '" & avFiles & "'", vbInformation, "www.excel-vba.ru"    Dim fso As Object
    Set fso = CreateObject("scripting.filesystemobject")
    Dim s As String
    Dim a As Variant
    Dim y As Long
    Dim ts As Object
    Set ts = fso.OpenTextFile(avFiles, ForReading)
    y = 2
    Do
        If ts.AtEndOfStream Then Exit Do
        s = ts.ReadLine
        If s <> "" Then
            a = Split(s, ";")
            Cells(y, 1).Resize(1, UBound(a)) = a
            Erase a
        End If
        y = y + 1
        DoEvents
    Loop
    ts.Close
End Sub
 
Цитата
PooHkrd написал:
Вариант на Power Query:В ячейку адрес пишем путь к файлу, в шапку вносим нужные заголовки для итоговой таблицы. Потом по рыжей табличке снизу жмакаем ПКМ и выбираем "Обновить".
выдает ошибку при выборе файла
 
shasha1111, кнопка цитирования не для ответа! Хотите обратиться по имени? - рядом есть другая кнопка. Она так и называется: "Имя".
 
PooHkrd, при указании пути файла и после обновления выдает ошибку Сбой инициализации источника данных
Страницы: 1
Наверх