Hallo Lotte,
ich würde das mit Offset lösen. Ist leichter zu programmieren. Wichtig dabei ist, dass du die Union-Funktion verwendest um mehrere Bereiche zu verknüpfen, denn über den Parameter eines einzelnen Range-Objekts kannst du nur eine Adress-Zeichenkette mit max. 255 Zeichen eingeben. Hier mal ein Beispielcode, wie du das mit Offset und Union aufbauen kannst.
Sub Markieren()
Dim StartZelle As Range, LetzteZelle As Range, Bereich As Range, c As Range
Set StartZelle = Range("F2")
Set LetzteZelle = Cells(Rows.Count, StartZelle.Column).End(xlUp)
Set Bereich = StartZelle
Set c = StartZelle
Do
Set c = c.Offset(5, 0)
Set Bereich = Union(Bereich, c)
Loop Until c.Address = LetzteZelle.Address Or c.Row >= LetzteZelle.Row
Bereich.Select
End Sub
Das .Select kannst du aber auch weglassen. Und gleich Bereich.Copy machen.
Achtung. Die Anzahl der nicht nebeneinanderliegenden markierbaren Zellen ist vom Datentyp Long und kann gemäß Spezifikation maximal 2.147.483.648 Zellen betragen. Um diesen Wert zu erreichen, müsstest du aber schon ein viertel aller Spalten (also A bis FAN) bis zur letzten Zeile schachbrettmusterartig markieren. Ein entsprechender Code ließe sich ebenfalls schreiben, der dürfte allerdings ewig dauern bis er durchgelaufen ist. Was dann passiert wenn du eine weitere Zelle markieren willst weiß ich nicht. Wahrscheinlich bricht dann das Raum-Zeit-Continuum zusammen.
Gruß Mr. K.
|