Ich habe den folgenden VBA-Code, der einen bestimmten Ordner durchläuft und alle Dateien eines bestimmten Typs in einem einzigen Arbeitsblatt kompiliert.VBA-Skript stoppt Teilweise durch Dateiliste
Sub cons_data()
Dim Master As Workbook
Dim sourceBook As Workbook
Dim sourceData As Worksheet
Dim CurrentFileName As String
Dim myPath As String
Dim LastRow As Long
Dim lRow As Long
Dim i As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'The folder containing the files to be recap'd
myPath = "path"
'Finds the name of the first file of type .xls in the current directory
CurrentFileName = Dir(myPath & "\*.txt*")
'Create a workbook for the recap report
Set Master = ThisWorkbook
For i = 1 To Master.Worksheets.Count
With Master.Worksheets(i)
lRow = .Range("A" & .Rows.Count).End(xlUp).Row
If lRow > 1 Then .Rows("2:" & lRow).ClearContents
End With
Next i
Do
Workbooks.Open (myPath & "\" & CurrentFileName)
Set sourceBook = Workbooks(CurrentFileName)
For i = 1 To sourceBook.Worksheets.Count
Set sourceData = sourceBook.Worksheets(i)
With sourceData
LastRow = Master.Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
lRow = .Range("A" & .Rows.Count).End(xlUp).Row
.Rows("2:" & lRow).Copy Master.Worksheets("Sheet1").Rows(LastRow + 1)
End With
Next i
sourceBook.Close
'Calling DIR w/o argument finds the next .txt file within the current directory.
CurrentFileName = Dir()
Loop While CurrentFileName <> ""
MsgBox "Done"
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Dieses Skript funktioniert auf bestimmten Dateitypen in Ordnung, aber aus irgendeinem Grunde, wenn es auf einer Liste von Textdateien mit einem Standardformat (einige davon sind Duplikate) läuft es stoppt und stellt den jüngsten Eintrag war es in einem separaten Excel-Arbeitsblatt arbeiten. Gibt es einen offensichtlichen Grund dafür, den Code zu betrachten, dass dies passieren könnte?
Ich lief gerade diesen Code auf einem meiner Ordner und hatte kein Problem. Vielleicht könnten Sie einige debug.prints hinzufügen. Was meinst du mit "einige sind Duplikate"? –
Das gleiche lief hier mehrmals ohne Probleme. Nur eine Frage, warum löschen Sie alle Arbeitsblätter in der Arbeitsmappe 'Master', wenn nur eine (' Sheet1') verwendet wird? – EEM
@ WayneG.Dunn Ich meine nur, dass es einige Dateien gibt, die den gleichen Namen und Inhalt haben. Guter Punkt auf den debug.prints. Wenn es hilft, habe ich etwa 20.000 Dateien, die ich durchgehen möchte. Könnte das ein paar Probleme verursachen? – 114