Copy-Befehl in Schleifen
09.08.2003 19:44:20
dietrich
ich möchte Zeilen einer Sammeltabelle auf unterschiedliche Arbeitsblätter verteilen. Dazu wähle ich eine Spalte mit den Unterscheidungsmerkmalen für die Selektion aus und gehe durch eine Schleife, in der der jeweils aktuelle Wert mit vorher definierten Werten verglichen wird. Wenn Übereinstimmung besteht, wird die gesamte Zeile kopiert und auf ein Arbeitsblatt für diese Werte geschrieben. Das ganze läuft jeweils mit copy und paste. Dachte ich jedenfalls ;-) Die Schleife mit dem ersten Wert wird noch gut durchlaufen, beim ersten anderen Wert (z=slab2) steigt Excel an der Stelle "ActiveSheet.Paste" aus mit dem Hinweis:
"Laufzeitfehler 1004. Die Paste-Methode des Worksheet-Objektes konnte nicht ausgeführt werden."
Diesen Fehler versteh ich nun nicht. Im ersten Teil der Schleife (z = slab1) hat es doch funktionert!?
Hier die Schleife, die durchlaufen wird:
...
' Gemessene SLA-Bereiche filtern und Zeilen kopieren
Workbooks(datei).Worksheets("sammelblatt").Select
zaehler0 = 2
Bereich = Workbooks(datei).Worksheets("sammelblatt").Range("c2:c" & Anzzeilen)
For Each z In Bereich
If z = slab1 Then
Workbooks(datei).Worksheets("sammelblatt").Select
aktzeile = zaehler0 & ":" & zaehler0
Rows(aktzeile).Copy
sheetname = "Daten_" & z
Worksheets(sheetname).Select
Range("a2").Select
anzzeilen2 = Workbooks(datei).Worksheets(sheetname).UsedRange.Rows.Count
anzzeilen3 = anzzeilen2 + 1 & ":" & anzzeilen2 + 1
Rows(anzzeilen3).Select
ActiveSheet.Paste
ElseIf z = slab2 Then
Workbooks(datei).Worksheets("sammelblatt").Select
aktzeile = zaehler0 & ":" & zaehler0
Rows(aktzeile).Copy
sheetname = "Daten_" & z
Worksheets(sheetname).Select
anzzeilen2 = Workbooks(datei).Worksheets(sheetname).UsedRange.Rows.Count
anzzeilen3 = anzzeilen2 + 1 & ":" & anzzeilen2 + 1
Rows(anzzeilen3).Select
ActiveSheet.Paste
ElseIf z = slab2 Then
...
End If
zaehler0 = zaehler0 + 1
Next
...
Was mache ich falsch?
Vielen Dank!
Dietrich