
Jeden Monat habe ich das Privileg, täglich durch Pipes getrennte Dateien in einer monatlichen Excel-Arbeitsmappe zusammenzustellen. Ich verwende den Importassistenten, um die Textdateien in Arbeitsblätter in der Arbeitsmappe umzuwandeln. Ich öffne alle 30 Dateien auf einmal und gehe die Eingabeaufforderungen des Assistenten für jede Datei durch. Der Assistent erkennt normalerweise richtig, dass die Dateien durch Pipes getrennt sind. Aber einmal, und nur einmal, in jedem Dateistapel ändert er den Dateityp von „Getrennt“ in „Feste Breite“. Jede Datei hat dasselbe Format: Datum|Abteilung|Konto|Typ|Betrag usw. … Jedes Feld enthält in allen Dateien ähnliche Daten. Alle Daten sind 8 Zeichen lang; alle Abteilungen sind 5 Zeichen lang; alle Konten sind 6 Zeichen lang usw. …
Warum erkennt Excel das durch Trennzeichen getrennte Format der Datei plötzlich nicht mehr?
Warum nur eine Datei aus dem Stapel?
Stellt es sicher, dass ich aufpasse?
Dies geschieht sowohl in Excel 2013 als auch in Excel 365 Pro (MSO 16.0).
Antwort1
Wenn Sie sich mit VBA auskennen, können Sie das folgende Makro verwenden, das nach einem Dateinamen fragt und den Import als durch Pipes getrenntes Element erzwingt:
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
Geben Sie für den Code unter „Startlaufwerk und -pfad auswählen“ eigene Werte ein.