Schritt durch einen nicht zusammenhängenden Zellbereich (Microsoft Excel)
Stephe muss ein Makro entwickeln, das eine Operation basierend auf den Zellen ausführt, die ein Benutzer auswählt, bevor er das Makro ausführt. Sie weiß, wie dies zu tun ist, wenn der Benutzer einen Zellbereich auswählt, aber sie weiß nicht, wie sie die Zellen in einer Auswahl durchlaufen soll, wenn der Benutzer einen nicht zusammenhängenden Zellbereich auswählt.
Wenn es um VBA geht, gibt es kaum einen Unterschied zwischen einer zusammenhängenden Auswahl und einer nicht zusammenhängenden Auswahl. Mit Excel können Sie auf alle gleich zugreifen. Betrachten Sie das folgende Code-Snippet:
Dim c As Range For Each c In Selection ' do something here MsgBox c.Address & vbTab & c.Value Next c
In diesem Fall werden die Zellen im ausgewählten Bereich nacheinander mithilfe der For … Next-Schleife schrittweise durchlaufen. Innerhalb der Schleife stellt die Variable c eine einzelne Zelle dar und kann wie gezeigt in Referenzen verwendet werden.
Wenn Sie aus irgendeinem Grund auf jeden zusammenhängenden Bereich innerhalb der Auswahl zugreifen möchten, können Sie dies tun, indem Sie die Gruppe Bereiche speziell ansprechen, wie in diesem Snippet gezeigt:
Dim a As Range Dim c As Range For Each a In Selection.Areas 'Now each a refers to a contiguous range 'Do something here with areas, if desired For Each c In a.Cells 'Now each c refers to a cell in the area 'Do something here MsgBox c.Address & vbTab & c.Value Next c Next a
Sie sollten auch beachten, dass Sie, wenn der Bereich, auf den Sie zugreifen möchten (zusammenhängend oder nicht zusammenhängend), in Excel benannt wurde, auch nur auf die Zellen im benannten Bereich zugreifen können. Ersetzen Sie einfach das Wort „Auswahl“ in jedem dieser Beispiele durch den Namen des Bereichs auf folgende Weise:
Dim c As Range For Each c In Range("MyNamedRange") ' do something here MsgBox c.Address & vbTab & c.Value Next c
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (8703) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tippes für die ältere Menüoberfläche von Excel finden Sie hier: