Hallo zusammen,
ich habe für meine Masterarbeit eine erste Messreihe mit fast 1000 Messungen laufen. Mehrere tausend Messungen werden noch folgen.
-
Für jede Messung bekomme ich eine eigene .xlsm-Datei, die u.A. die Berechnung einiger Kennwerte enthält.
-
Die einzelnen .xlsm-Dateien liegen alle in einem Windows-Ordner.
-
Die Kennwerte stehen in den einzelnen Dateien immer in der selben Zelle im selben Sheet.
Mit einem Makro lasse ich mir eine Liste aller Dateinamen ausgeben.
Ich möchte jetzt gerne ein VBA-Makro schreiben zum Zusammentragen der Ergebnisse. Das Makro soll in einer Schleife:
-
Die Anzahl der Dateien erkennen (funktioniert)
-
Die einzelnen .xlsm-Dateien öffnen, wenn möglich im Hintergrund
-
Die Kennwerte aus den jeweiligen Zellen auslesen
-
Alles in der Sammlungstabelle eintragen
Ich scheitere aber am variablen Dateinamen (und eventuell auch an der Schleife...):
Sub ErgebnisseAuslesen()
'Anzahl der auszuwertenden Dateien:
Dim NumDataFiles As Integer
NumDataFiles = Sheets("Dateinamen").Cells(Rows.Count, 1).End(xlUp).Row
'Gibt die richtige Zeilenzahl zurück
'Variablentypen deklarieren:
Dim F1 As Double 'einer meiner Kennwerte
Dim Filename As String
Dim i As Integer 'als Laufvariable über die Zeilen der Dateinamen und Exportzeilen
'Schleife über alle Dateien:
For i = 1 To NumDataFiles
'Dateinamen einlesen:
Filename = Worksheets("Dateinamen").Cells(i, 1).Value
'Dateiname steht im Sheet "Dateinamen" in der Zelle i,1
'Daten einlesen:
F1 = Workbooks("Filename").Worksheets("RawData").Range("F1").Value
'Daten in neue Tabelle übertragen:
Worksheets("Ergebnisse").Cells(i, 1).Value = Filename
Worksheets("Ergebnisse").Cells(i, 2).Value = F1
Next i
'noch ein bisschen Formatierungs-Gedöns
End Sub
Das Makro bleibt immer beim Einlesen hängen. Error ist "Laufzeitfehler '9' Index außerhalb des gültigen Bereichs".
Könnt ihr mir bitte helfen das richtig hinzubekommen?
Vielen Dank.
|