Excel, мастер импорта, обнаружение неправильного типа файла

Excel, мастер импорта, обнаружение неправильного типа файла

Каждый месяц у меня есть привилегия компилировать ежедневные файлы с разделителями-вертикальными чертами в ежемесячную рабочую книгу Excel. Я использую мастер импорта для преобразования текстовых файлов в рабочие листы в рабочей книге. Я открываю все 30 файлов одновременно и просматриваю подсказки мастера для каждого файла. Мастер обычно правильно определяет, что файлы с разделителями-вертикальными чертами. Но один и только один раз из каждой партии файлов он меняет тип файла с «С разделителями» на «Фиксированная ширина». Каждый файл имеет одинаковый формат: Дата|Отдел|Счет|Тип|Сумма и т. д. Каждое поле содержит похожие данные во всех файлах. Все даты состоят из 8 символов; Все отделы состоят из 5 символов; Все счета состоят из 6 символов и т. д.

Почему Excel вдруг не распознает формат файла с разделителями?
Почему только один файл из группы?

Это нужно для того, чтобы убедиться, что я обращаю внимание?

Это происходит как в Excel 2013, так и в Excel 365 Pro (MSO 16.0).

решение1

Если вы понимаете VBA, вы можете использовать следующий макрос, который запросит имя файла и принудительно импортирует его с разделителями-вертикальными чертами:

Sub Test()
    Dim Filter As String, Title As String
    Dim FilterIndex As Integer
    Dim FileName As Variant

    ' File filters
    Filter = "Text Files (*.dat),*.dat," & "All Files (*.*),*.*"

    ' Default Filter to *.*
    FilterIndex = 3

    ' Set Dialog Caption
    Title = "Select a File to Open"

    ' Select Start Drive & Path
    ChDrive ("G:")
    ChDir ("G:\Scot\MS Excel")

    With Application
        ' Set File Name to selected File
        FileName = .GetOpenFilename(Filter, FilterIndex, Title)
        ' Reset Start Drive/Path
        ChDrive (Left(.DefaultFilePath, 1))
        ChDir (.DefaultFilePath)
    End With

    ' Exit on Cancel
    If FileName = False Then
        MsgBox "No file was selected."
        Exit Sub
    End If

    ' Import File
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & FileName, Destination:=Range("A1"))
        .TextFileParseType = xlDelimited
        .TextFileOtherDelimiter = "|"
        .Refresh BackgroundQuery:=False
    End With
End Sub

Введите собственные значения для кода ниже «Выберите начальный диск и путь».

источник

Связанный контент