Hallo zusammen,
ich möchte mehrere .lst Dateien als verschiedene Arbeitsblätter in ein Excel-Dokument importieren. Bis jetzt habe ich das immer über den Legacy-Assistenten "Aus Text (Legacy)" gemacht, aber da das Ganze sehr repetetiv ist würde ich gerne versuchen, ein Makro dafür zu schreiben.
Zuerst hab ich versucht, einfach ein Makro aufzunehmen und dann eine Datei als Beispiel zu importieren mit den gewünschten Einstellungen (Getrennt durch Leerzeichen; Abfragedefinition nicht speichern; in ein neues Arbeitsblatt ablegen). Grundlage davon ist ein Tutorial zu Makros das ich auf Youtube angeschaut habe, in dem etwas ähnliches erstellt wurde.
Dabei kommt folgendes heraus:
Sub fromtextLegacy()
'
' fromtextLegacy Makro
'
'
Application.CutCopyMode = False
Application.CutCopyMode = False
ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\...\OAT_1081_1995_613.LST" _
, Destination:=Range("$A$1"))
.CommandType = 0
.Name = "OAT_1081_1995_613"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
Probiere ich aber das Ganze im Anschluss auszuführen kriege ich immer folgenden Fehler angezeigt: "Laufzeitfehler '5': Ungütiger Prozeduraufruf oder ungültiges Argument", was ich mir nicht erklären kann.
Abgesehen davon würde mit dem Code natürlich immer nur dieselbe Datei geöffnet. Es wäre super praktisch wenn ich hier entweder die Datei selber auswählen könnte oder das ganze mehr oder weniger automatisch fortgeführt werden könnte (die Dateien liegen in einem Ordner und heißen alle "OAT_1081_jahreszahl_613.LST" wobei statt "jahreszahl" eine fortlaufende Zahl zwischen 1995 und 2018 steht. Aber bei Letzterem kenne ich mich defintiv zu wenig aus, wie das funktionieren könnte).
Die Datei selbst auswählen zu können wäre defintiv schon ausreichend und würde mir die Arbeit schon super erleichtern. Dafür hab ich beim googeln gesehen, dass für mir ähnlich erscheinende Probleme "FileDialog" oder "GetOpenFilename" verwendet wurden, bin aber unsicher ob diese hier funktionieren würden, bzw. wie man sie einbaut.
Für jegliche Hilfe bin ich super dankbar!
Beste Grüße
Mara
|