Ich habe mehrere Dateien mit Daten, die in eine einzige Master-Datei mit allen Daten in eine einzige Zeile umgesetzt werden müssen.Erstellen einer Schleife zum Öffnen mehrerer Dateien und Kopieren von Daten in eine Master-Datei in VBA Excel
Ich bin eine komplette Noob in der Programmierung so, wenn der Code, den ich bisher habe keinen Sinn machen, dann bitte, es zu ändern fühlen Sie sich frei
konnte ich diese „Loop alle Excel finden Dateien in Ein Ordner "Code von www.TheSpreadsheetGuru.com Der Code funktioniert einwandfrei, es wird jede Datei einzeln im Ordner öffnen und dann schließen, und dann die nächste Datei öffnen und schließen, bis sie alle Dateien in diesem Ordner durchlaufen hat .
Ich möchte jedoch eine Code-Schleife "Kopieren und Einfügen von Daten" innerhalb der Schleife einfügen. Was also passieren muss, ist, dass der Code "Datei1" in dem Ordner öffnet und dann die Daten kopiert und in die "Master-Datei" in der Zelle A4 einfügt. Dann wird "File1" geschlossen, und dann "File2" öffnen und die Daten in "Master File" in Zelle A5 kopieren und dann "File2" schließen. Dies wird so lange wiederholt, bis alle Dateien im Ordner geöffnet/geschlossen wurden.
Dies ist der Code, den ich gerade habe, aber ich kann nicht den Code zum Kopieren und Einfügen richtig funktionieren. Mir fällt es schwer herauszufinden, wie man die Schleife einstellt, wo der Code weiß, in welcher Datei er sich gerade befindet und einen Zähler für die Zelle der Master-Datei setzt, in die er eingefügt wird.
Sub LLoopAllExcelFilesInFolder()
'PURPOSE: To loop through all Excel files in a user specified folder and perform a set task on them
'SOURCE: www.TheSpreadsheetGuru.com
Dim wb As Workbook
Dim myPath As String
Dim myFile As String
Dim myExtension As String
Dim FldrPicker As FileDialog
'Optimize Macro Speed
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
'Retrieve Target Folder Path From User
Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker)
With FldrPicker
.Title = "March"
.AllowMultiSelect = False
If .Show <> -1 Then GoTo NextCode
myPath = .SelectedItems(1) & "\"
End With
'In Case of Cancelhow
NextCode:
myPath = myPath
If myPath = "" Then GoTo ResetSettings
'Target File Extension (must include wildcard "*")
myExtension = "*.xlsx"
'Target Path with Ending Extention
myFile = Dir(myPath & myExtension)
'Loop through each Excel file in folder
Do While myFile <> ""
'Set variable equal to opened workbook
Set wb = Workbooks.Open(Filename:=myPath & myFile)
'THIS IS MY COPY AND PASTE CODE (DOESN'T WORK)
Dim row As Integer
While row = 4
Workbooks("Filename:=myPath & myFile").Worksheets("Resin Log").cell("I5") = Workbooks("Workbook1.xlsm").Worksheets("Sheet1").Range("A" & row).Value
Next row
'Save and Close Workbook
wb.Close SaveChanges:=False
'Get next file name
myFile = Dir
Loop
'Message Box when tasks are completed
MsgBox "Task Complete!"
ResetSettings:
'Reset Macro Optimization Settings
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Schwer zu sagen, wenn es funktioniert, wenn Sie keinen Code zur Verfügung stellen ... – findwindow
auch, wenn Sie SO oder sogar google suchen, sind Sie verpflichtet, diesen genauen Code irgendwo zu finden. Dies ist eine sehr häufige Aufgabe - nur vorschlagen, ein wenig tiefer zu suchen –
Entschuldigung, ich hätte den Code kopieren und einfügen. Ich habe versucht, durch Google zu suchen, aber keiner von ihnen funktioniert in meinem Fall. Der Code muss die aktuelle Datei, in der er sich befindet, öffnen, die Daten aus einer bestimmten Zelle kopieren und in die Masterdatei einfügen. Also für ein Beispiel, öffnet "File1", kopiert Zelle "C1" und fügt es in "Master File" in der Zelle "A4" ein und schließt dann "File1". Dann öffnet es "File2", kopiert "C1" und fügt es in "Master File" in der Zelle "A5" ein und schließt "File2". Dann öffnet es "File3", kopiert "C1" und fügt es in die Master-Datei in der Zelle "A6" ein und schließt "File3". Und so weiter ... – Sharkywang