Zelleninhalte als Tabellenblattnamen definieren
28.07.2014 11:51:33
D_Gonzalez
folgende Situation: ich habe zwei Excel-Dateien geöffnet. Die eine ist eine Aggregationsdatei, aus der bestimmte Daten aus der zweiten, wechselnden Datei ausgelesen werden sollen. In der Aggregationsdatei gibt es ein Tabellenblatt, in dem die für die Datenanalyse relevanten Tabellenblattnamen in einer Spalte untereinander aufgelistet sind.
Ich möchte ein Makro basteln, das in meiner zweiten geöffneten Datei in relevanten Tabellenblättern den vordefininierten Wertebereich ausliest und diesen in der Aggregationsdatei im Tabellenblatt Werte fortlaufend auflistet.
Hier mal das Makro, mit einigen Kommentaren versehen:
Sub Makro()
Dim Anzahl As Integer
Dim i As Integer
Dim dn As Workbook
Dim j As Worksheet
Set dn = ActiveWorkbook die zweite geöffnete Datei hat wechselnde Bezeichnungen; ich will der _
jeweils geöffneten Datei einen variablen Wert zuweisen, damit ich sie jeweils ansprechen kann
Set myRange = Workbooks("Aggregation.xlsm").Worksheets("Daten").Range("A2:C51")
Anzahl = Application.WorksheetFunction.Count(myRange)
For i = 1 To Anzahl
j = Workbooks("Aggregation.xlsm").Worksheets("Daten").Cells(i, 1).Name hier erhalte ich _
einen Laufzeitfehler 1004, Anwendungs- oder objektdefinierter Fehler
Workbooks(dn).Worksheets(j).Select in der jeweiligen Datei soll das in der Schleife _
definierte Tabellenblatt j ausgewählt werden
Range("A12:D12").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Sheets:=1
Workbooks(dn).Worksheets("Werte").Range("A1000").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Next i
End Sub
Kann mir jemand sagen wo der Fehler liegt?