Anzeigen des ersten Arbeitsblatts in einem Makro (Microsoft Excel)
Terri hat ein Makro, das automatisch ausgeführt wird, wenn ein Arbeitsblatt geöffnet wird.
Eine Sache, die es tut, ist das Anzeigen des ersten Arbeitsblatts in der Arbeitsmappe, das normalerweise als „Konsolidiert“ bezeichnet wird. Dies funktioniert hervorragend, es sei denn, das erste Arbeitsblatt hat diesen Namen nicht. Dann muss Terri daran denken, das Makro zu ändern, um einen anderen Arbeitsblattnamen anzugeben. Sie fragt sich, ob es eine Möglichkeit gibt, ihr Makro so zu schreiben, dass das erste Arbeitsblatt immer angezeigt wird, unabhängig von seinem Namen.
Normalerweise würden Sie, wie Terri anspielt, ein bestimmtes Arbeitsblatt anzeigen, indem Sie seinen Namen in der Anweisung folgendermaßen verwenden:
Worksheets("Consolidated").Activate
Dies funktioniert hervorragend, solange die Arbeitsmappe ein Arbeitsblatt mit diesem Namen (konsolidiert) enthält. Das Anzeigen eines bestimmten Arbeitsblatts (wie das erste in der Arbeitsmappe), wenn Sie nicht wissen, wie der Name dieses Arbeitsblatts lautet, verfolgt einen anderen Ansatz.
Die einfache Antwort besteht darin, anhand der Position in der Arbeitsblattsammlung auf das Arbeitsblatt zu verweisen. Alle Arbeitsblätter in einer Arbeitsmappe gehören zu einer Sammlung von Arbeitsblattobjekten. Diese Sammlung wird (seltsamerweise) als Arbeitsblattsammlung bezeichnet. Sie können auf ein einzelnes Arbeitsblatt in der Sammlung nach Namen verweisen (wie im vorherigen Beispiel) oder Sie können auf sie verweisen, indem Sie eine Indexnummer in der Sammlung verwenden. Sie können beispielsweise das erste Arbeitsblatt in der Sammlung folgendermaßen aktivieren:
Worksheets(1).Activate
Bei dieser Methode spielt es keine Rolle, wie das erste Arbeitsblatt heißt. es könnte leicht „konsolidiert“ oder ein anderer Name sein.
Excel aktiviert pflichtbewusst das erste Arbeitsblatt in der Arbeitsmappe.
Dies funktioniert nur dann nicht, wenn das erste Arbeitsblatt in Ihrer Arbeitsmappe ausgeblendet ist. Wenn das Arbeitsblatt nicht sichtbar ist, zeigt Excel automatisch (nach Ausführung dieser Anweisung) das erste sichtbare Arbeitsblatt an.
Beachten Sie, dass hiermit die erste Registerkarte (ganz links) in der Arbeitsmappe angezeigt wird. Wenn Sie stattdessen das zuerst erstellte Arbeitsblatt unabhängig von seiner Position in einer Arbeitsmappe anzeigen möchten, können Sie einen anderen Ansatz ausprobieren. Jedes Arbeitsblatt hat (mangels eines besseren Begriffs) einen „Codenamen“ hinter den Kulissen. Diese Codenamen sollten vertraut klingen. Dies sind Sheet1, Sheet2, Sheet3 usw. Diese Namen bleiben erhalten, auch wenn Sie den Namen des Arbeitsblatts selbst oder die Position der Registerkarten ändern können. Wenn Sie das erste erstellte Arbeitsblatt anzeigen möchten (erneut, unabhängig von der Position), können Sie Folgendes versuchen:
Sheet1.Activate
Dies hat eine Einschränkung: Es ist möglich, dass der Codename für Ihre Arbeitsblätter geändert wurde, wenn Sie den Programmcode dafür schreiben.
Wenn dies der Fall ist, liefert die obige Aussage möglicherweise nicht die gewünschten Ergebnisse. (Testen ist immer eine gute Idee.)
_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 (12272) gilt für Microsoft Excel 2007, 2010, 2013 und 2016.
Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: