AW: erste leere Zelle von oben finden
daniel
Hi
hier mal ein etwas unbekannterer Ansatz:
Sub test()
Dim a As Long
With Columns(2).SpecialCells(xlCellTypeConstants, 1)
For a = 1 To .Areas.Count
.Areas(a).Offset(0, -1).Resize(, 2).Copy
Sheets(a + 1).Range("a1").PasteSpecial xlPasteAll
Next
End With
End Sub
mit dem SpecialCells kann man einen größeren Zellbereich auf bestimmte Zellen einschränken.
hier auf alle Zellen mit festen Werten (xlcelltypeconstants, das gegenstück wären Zellen mit Formeln) , die Zahlen sind (dafür steht die 1, Texte wären 2 und 3 wären Zahlen und Texte)
wenn man das macht, bekommt man einen Zellbereich, der nur aus den Einsen besteht, dh ohne die Lücke (da Leerzelle) und ohne die Überschrift (die ist ja Text), also
B2:B6,B8:B11.
wie man sieht, besteht dieser Zellbereich auch zwei Blöcken. Diese einzelnen Blöcke kann man jetzt über das Konstrukt: AREA abfragen.
hier werden also die einzelnen Areas kopiert und das jeweilige Tabellenblatt eingefügt
man muss sich das so vorstellen:
Cells() - Einzelne Zelle
Range() - beliebige Zusammenstellung von Zellen auf einem Tabellenblatt
Area() - ist immer ein rechteckiger lückenloser Zellblock. Eine Area sind die lückenlosen rechteckigen Zellbereiche, aus denen eine Range zusammengesetzt sein kann.
Gruß Daniel