Manchmal kann es ganz sinnvoll sein, einen markierten Bereich in eine Range-Variable zu übernehmen. Der Vorteil gegenüber einer fixen Bereichsdefinition ist klar, der Anwender bestimmt, welcher Bereich (Range) im jeweiligen Fall die Grundlage für weitere Operationen sein soll; der Code muss nicht angepasst werden.
Zugegeben, hier wird nicht geprüft, ob (in dem Blatt) überhaupt eine Zelle selektiert ist, aber das sollte standardmäßig entweder nicht erforderlich sein oder mit einer If-Entscheidung abgefangen werden. 1 Zeile Code reicht eigentlich aus, der Vollständigkeit halber hier eine Mini-Sub:
Sub Selection2Range() Dim Data As Range, c As Range Set Data = Range(Selection.Address(0, 0)) For Each c In Data 'Mach irgend etwas ... Next c End Sub
Fertig.
[NachObenLetzte Verweis=„CS:Selection2Range”]