Lesen Sie alle Dateien im Ordner und zeigt die Inhalte in Excel
Möchte ich zeigen, 7000 Dateien Inhalte in einen Ordner und excel?
Habe ich eine gefunden, die ein Stück code, das hat mir geholfen, aber nur Lesen, eins nach dem anderen. Allerdings möchte ich zu Lesen, 7000 all in one gehen. Bitte helfen Sie.
Option Explicit
Sub Import_TXT_File()
Dim strg As Variant
Dim EntireLine As String
Dim FName As String
Dim i As String
Application.ScreenUpdating = False
FName = Application.GetOpenFilename("Text Files (*.txt), *.txt", , "Choose File to Import")
Open FName For Input Access Read As #1
i = 1
While Not EOF(1)
Line Input #1, EntireLine
strg = EntireLine
'Change "Sheet1" to relevant Sheet Name
'Change "A" to the relevant Column Name
Sheets("Sheet1").Range("A" & i).Value = strg
i = i + 1
Wend
EndMacro:
On Error GoTo 0
Application.ScreenUpdating = True
Close #1
End Sub
- Lesen Sie dieser.
Du musst angemeldet sein, um einen Kommentar abzugeben.
user1185158
Dem code, die Sie verwenden, werden sehr langsam, wenn Sie das Lesen von 7000 Dateien. Es gibt auch keinen code Lesen kann 7000 Dateien in 1 gehen. Sie haben, um eine Schleife durch die 7000 Dateien. Es gibt jedoch eine gute Nachricht 🙂 Anstatt einer Schleife durch jede Zeile in der Textdatei, die Sie Lesen können, wird die gesamte Datei in ein array und dann schreiben Sie Sie in excel. Siehe zum Beispiel dieser code ist sehr schnell im Vergleich zu dem code, den Sie oben.
AUSPROBIERT UND GETESTET
Nun mit dem gleichen code in einer Schleife können wir schreiben Sie in eine Excel-Datei
Was der obige code macht, ist, dass es liest den Inhalt der 7000 text-Dateien in Blatt 1 (eins unter dem anderen). Auch ich habe nicht enthalten die Fehlerbehandlung. Bitte tun Sie das.
VORSICHT: Wenn Sie beim Lesen schwere text-Dateien, sagen wir, jede Datei mit 10000 Zeilen, dann müssen Sie den code optimieren, in dem obigen Szenario erhalten Sie Fehler. zum Beispiel
7000 Dateien * 10000 Zeilen = 70000000 Linien
Excel 2003 hat 65536 Zeilen und Excel 2007/2010 hat 1048576 Zeilen.
Also erst einmal die WriteRow erreicht die maximale Zeile, möchten Sie vielleicht Lesen Sie den text-Datei-Inhalte in Blatt 2 und so weiter...
HTH
Sid
Split
? Meine Daten sind echte text und dieSplit
unnötig zerlegt jedes Wort in Buchstaben, die zu schaffen wäre eine massive Anzahl von Spalten nach excel exportiert als solche (nehme ich an).Einnahme von Siddharth, der die Lösung ein wenig weiter. Sie wollen wahrscheinlich nicht zu schreiben, jede Zeile ein zu einer Zeit, Anrufe zu dem Arbeitsblatt sind extrem langsam in Excel, es ist besser zu tun, um jede Schleife in den Speicher und schreiben Sie zurück auf einen Streich 🙂