Zellen mit Hilfe einer „For Each…Next“-Schleife in Excel

  • 9/28/2020
  • 3 Minuten zum Lesen
    • s
    • C
    • A
  • Gilt für: Microsoft Office Excel 2007, Microsoft Office Excel 2003, Microsoft Office Excel 2002, Excel 97

Hinweis

Office 365 ProPlus wird umbenannt in Microsoft 365 Apps für Unternehmen. Weitere Informationen zu dieser Änderung finden Sie in diesem Blogbeitrag.

Zusammenfassung

Microsoft Excel 2002 und neuere Versionen von Excel löschen Zellen in einer „For Each…Next“-Schleife auf eine andere Weise als Microsoft Excel 97 und frühere Versionen von Excel.

Dieser Artikel beschreibt die Unterschiede und enthält ein Visual Basic for Applications-Makrobeispiel, das das Löschen von Zellen in einer Schleife veranschaulicht.

Weitere Informationen

Microsoft stellt Programmierbeispiele nur zur Veranschaulichung zur Verfügung, ohne ausdrückliche oder stillschweigende Garantie. Dies schließt die stillschweigende Gewährleistung der Marktgängigkeit oder der Eignung für einen bestimmten Zweck ein, ist aber nicht darauf beschränkt. In diesem Artikel wird davon ausgegangen, dass Sie mit der vorgestellten Programmiersprache und den Werkzeugen zum Erstellen und Debuggen von Prozeduren vertraut sind. Die Supporttechniker von Microsoft können Ihnen helfen, die Funktionalität einer bestimmten Prozedur zu erklären. Sie werden diese Beispiele jedoch nicht ändern, um zusätzliche Funktionen bereitzustellen oder Prozeduren zu erstellen, die Ihren spezifischen Anforderungen entsprechen.

Beispieldaten

Um das Makro in diesem Artikel zu verwenden, geben Sie die folgenden Beispieldaten in ein Arbeitsblatt ein:

A1: a B1: 1A2: b B2: 2A3: x B3: 3A4: x B4: 4A5: c B5: 5A6: x B6: 6A7: d B7: 7A8: x B8: 8A9: x B9: 9A10: e B10: 10

Beispielmakro

Geben Sie in ein neues Makromodul das folgende Makro ein.

Verhalten des Beispielmakros in Excel 2002 und in späteren Versionen von Excel

Wenn Sie das Makro DeleteCells in Excel 2002 und in späteren Versionen von Excel ausführen, werden nur die Zeilen 3, 6 und 8 gelöscht. Obwohl die Zeilen 4 und 9 ein „x“ in Spalte A enthalten, löscht das Makro diese Zeilen nicht. Die Ergebnisse des Makros sind wie folgt:

A1: a B1: 1A2: b B2: 2A3: x B3: 4A4: c B4: 5A5: d B5: 7A6: x B6: 9A7: e B7: 10

Wenn Microsoft Excel die Zeile 3 löscht, rücken alle Zellen eine Zeile nach oben. Zum Beispiel übernimmt Zelle A3 den Inhalt von Zelle A4, Zelle A4 den Inhalt von Zelle A5 und so weiter. Nachdem die For Each…Next-Schleife eine Zelle ausgewertet hat, wird die nächste Zelle ausgewertet; wenn Zellen verschoben werden, können sie daher von der Schleife übersprungen werden.

Verhalten des Beispielmakros in Microsoft Excel 5.0 und Microsoft Excel 7.0

Wenn Sie das Makro DeleteCells in Excel 5.0 und in Excel 7.0 ausführen, löscht das Makro alle Zeilen, die ein „x“ enthalten. Die Ergebnisse des Makros sind wie folgt:

A1: a B1: 1A2: b B2: 2A3: c B3: 5A4: d B4: 7A5: e B5: 10

Wenn Zeile 3 gelöscht wird, rücken alle Zellen eine Zeile nach oben. Dann übernimmt Zelle A3 den Inhalt von Zelle A4, Zelle A4 den Inhalt von Zelle A5 und so weiter.

Im Gegensatz zum Verhalten der Schleife in Excel 2002 und in späteren Versionen von Excel wertet die „For Each…Next“-Schleife in Excel 5.0 und in Excel 7.0 eine Zelle neu aus, wenn sie in der Schleife gelöscht wird. Daher werden die Zellen nicht übersprungen.

Empfohlene Methode zum Verwenden einer Schleife zum Löschen von Zellen

Verwenden Sie das folgende Makro, wenn Sie eine Schleife zum Löschen von Zellen verwenden möchten:

Die Ergebnisse dieses Makros in allen Versionen von Excel sind wie folgt:

A1: a B1: 1A2: b B2: 2A3: c B3: 5A4: d B4: 7A5: e B5: 10

Zusätzliche Methode zum Verwenden einer Schleife zum Löschen von Zellen

Dies ist eine alternative Methode zu der oben gezeigten Methode. Diese Methode führt zu denselben Ergebnissen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.