<p>Hi, ich möchte einen VBA-Code schreiben, welcher Text-Dateien aus einem Ordner in eine Arbeitsmappe einfügt. Dabei sollen die verschiedenen Text-Dateien nebeneinander in verschiedenen Zellen stehen. Die Zeilen der Text-Dateien sollen ebenfalls in verschiedenen Zellen untereinander stehen. In meinem Code wird mir ein Laufzeitfehler 62 angezeigt. Kann mir jemand helfen?</p>
Sub TextdateienImportieren()
Dim fso As Object
Dim Ordner As Object
Dim Datei As Object
Dim Spalte As Long
Dim Zeile As Long
Dim Inhalt As String
Dim Dateiname As String
Dim ZeilenArray() As String
' Pfad zum Ordner, der die Textdateien enthält
Dim Ordnerpfad As String
Ordnerpfad = "Dateienpfad"
' Tabellenblatt und Startposition für den Import
Dim Tabelle As Worksheet
Set Tabelle = ThisWorkbook.Sheets("Tabelle1")
Spalte = 1 ' Startspalte für den Import
Zeile = 1 ' Startzeile für den Import
' Erstelle ein FileSystemObject, um auf den Ordner zuzugreifen
Set fso = CreateObject("Scripting.FileSystemObject")
Set Ordner = fso.GetFolder(Ordnerpfad)
' Schleife durch alle Dateien im Ordner
For Each Datei In Ordner.Files
' Prüfe, ob die Datei eine Textdatei ist (.txt)
If Right(Datei.Name, 4) = ".txt" Then
' Öffne die Textdatei und lese den Inhalt
Inhalt = ""
Dateiname = Datei.Path
Open Dateiname For Input As #1
Inhalt = Input(LOF(1), #1)
Close #1
' Teile den Inhalt in Zeilen auf
ZeilenArray() = Split(Inhalt, vbCrLf)
' Füge den Inhalt in die Tabelle ein
Tabelle.Cells(Zeile, Spalte).Value = Dateiname ' Schreibe den Dateinamen in die Zelle
' Schreibe den Inhalt der Textdatei in separate Zellen untereinander
For i = 0 To UBound(ZeilenArray)
Tabelle.Cells(Zeile + i + 1, Spalte).Value = ZeilenArray(i)
Next i
' Erhöhe die Startposition für den nächsten Import
Spalte = Spalte + 1 ' Erhöhe um 1 Spalte, um Platz für den nächsten Dateinamen zu lassen
Zeile = 1 ' Setze die Zeile für den nächsten Import zurück
End If
Next Datei
' Gib Speicherplatz frei
Set Ordner = Nothing
Set fso = Nothing
End Sub
|