
Каждый месяц у меня есть привилегия компилировать ежедневные файлы с разделителями-вертикальными чертами в ежемесячную рабочую книгу 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
Введите собственные значения для кода ниже «Выберите начальный диск и путь».