Suchen der zuletzt verwendeten Zelle in einem Makro (Microsoft Excel)
Wenn Sie in einem Arbeitsblatt arbeiten, wissen Sie, dass Sie Strg + Ende drücken können, um zur letzten Zelle im Arbeitsblatt zu springen. Die Verknüpfung wählt die Zelle aus, die den Schnittpunkt der letzten Spalte mit Daten und der letzten Zeile mit Daten darstellt. Wenn also die letzte Spalte, in der Sie Daten haben, Spalte F ist und die letzte Zeile, in der Sie Daten haben, Zeile 27 ist, wählt Strg + Ende die Zelle F27 aus.
Um dieselbe Aufgabe über ein Makro auszuführen, verwenden Sie einen sehr einfachen Befehl, wie hier gezeigt:
Sub FindLast1() ActiveCell.SpecialCells(xlLastCell).Select End Sub
Dies entspricht funktional dem Drücken von Strg + Ende. Allerdings (und dies ist ein großes Problem) verfolgt Excel nicht dynamisch, welche Zeilen und Spalten zuletzt in einem Arbeitsblatt verwendet wurden. Angenommen, Sie öffnen eine Arbeitsmappe, drücken Strg + Ende und gelangen zur Zelle F27. Wenn Sie dann drei Zeilen und eine Spalte löschen, erwarten Sie, dass Sie mit Strg + Ende zur Zelle E24 gelangen. Es tut nicht; Sie gelangen weiterhin zur Zelle F27, bis Sie die Arbeitsmappe speichern und erneut öffnen.
Das gleiche Problem betrifft den im FindLast1-Makro angezeigten Makrocode. Sie gelangen in die „höchste“ Zelle, unabhängig davon, welche Spalten oder Zeilen Sie während der aktuellen Sitzung gelöscht haben.
Was benötigt wird, ist eine Möglichkeit, die Anzeige „Letzte Zelle“ zurückzusetzen, als hätten Sie die Arbeitsmappe gespeichert und erneut geöffnet. Es gibt keinen intrinsischen Makrobefehl, der dies ausführt, aber es gibt eine Möglichkeit, Excel zum Zurücksetzen zu zwingen. Sie müssen das Makro lediglich wie folgt anpassen:
Sub FindLast2() x = ActiveSheet.UsedRange.Rows.Count ActiveCell.SpecialCells(xlLastCell).Select End Sub
Dieses Makro bringt Sie immer zur richtigen Zelle – es funktioniert so, wie Sie es von Strg + Ende erwarten würden. Es funktioniert, weil anscheinend Excel bei der Berechnung der Count-Eigenschaft für die Anzahl der Zeilen im Arbeitsblatt immer den Indikator „Letzte Zelle“ zurücksetzt.
_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 (11526) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: