Ich versuche, ein Blatt aus einer Datei zu kopieren und dann in etwa 6 Dateien in einem eingerichteten Ordner in eine festgelegte Registerkarte einzufügen. Ich habe diesen Code, aber es funktioniert nur für die erste Datei in dem Ordner. Es erstellt aus irgendeinem Grund auch eine leere Arbeitsmappe. Irgendwelche Vorschläge?Kopieren und Einfügen in alle Dateien in einem Ordner
Sub LoopThroughFiles()
Dim wbk As Workbook
Dim Filename As String
Dim FirstFile As String
Dim FileDirectory As String
Dim x As Workbook
Set x = Workbooks.Open("test.xlsx")
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Please select a folder"
.AllowMultiSelect = False
.Show
If .SelectedItems.Count = 0 Then
MsgBox "You did not select a folder"
Exit Sub
Else
FileDirectory = .SelectedItems(1) & "\"
End If
End With
Set wbk = Workbooks.Add
Filename = Dir(FileDirectory)
FirstFile = Filename
Do Until Filename = ""
Dim new_wb As Workbook
Set new_wb = Workbooks.Open(FileDirectory & Filename)
If FirstFile = Filename Then
x.Sheets("report").UsedRange.Copy
new_wb.Sheets("roster").Range("a1").PasteSpecial
End If
new_wb.Close savechanges:=True
Filename = Dir
Loop
MsgBox "All store totals have been added"
End Sub
(a) Ihre Linie' Wenn FirstFile = Dateiname Then' ist speziell das Makro nur sagen, tut das Kopieren/Einfügen, wenn es die erste Datei in dem Ordner befindet. (b) Ich bin mir nicht sicher, warum es eine leere Arbeitsmappe erstellen würde - wie lautet der Dateiname der leeren Arbeitsmappe? – YowE3K
(b) Ihre Zeile 'Set wbk = Workbooks.Add' erstellt eine neue leere Arbeitsmappe. Da in den folgenden Zeilen kein Bezug zu wbk besteht, könnten Sie diese Zeile wahrscheinlich löschen. –
Ich habe das letzte Nacht herausgefunden. Ich fügte auch eine kleine Falte für die durchgeführten Aktionen hinzu. Ich bin neu in der Sicht, also wenn mir jemand sagen könnte, wie man den aktualisierten Code hinzufügt, werde ich es tun. Es maximiert die Zeichen für diese Antwort, wenn ich versuche, es hier zu kopieren. – chasedcribbet