Office Script: Tabellenblätter aktivieren
In diesem Beitrag erkläre ich, wie man mit workbook.getWorksheet("Tabellenname").activate() in Office Script ein Tabellenblatt aktivieren kann. Außerdem vergleiche ich kurz mit dem Verhalten in VBA.
EXCELOFFICE SCRIPT
9/19/20251 min read


Office Script: Tabellenblätter aktivieren mit .activate()
Heute habe ich mir die Methode .activate() angesehen. Damit kann ich in Office Script ein bestimmtes Tabellenblatt aktivieren, also in Excel nach vorne holen.
Mein Aha-Moment
Der Befehl lautet:
workbook.getWorksheet("Tabelle2").activate()
Damit wird „Tabelle2“ geöffnet und ist ab sofort das aktive Blatt in der Arbeitsmappe.
Erklärung
.activate() sorgt dafür, dass ein Blatt den Fokus bekommt.
Der Name des Blattes muss exakt stimmen. Wenn er sich ändert, funktioniert der Code nicht mehr.
Achtung bei ausgeblendeten Blättern. Diese können NICHT mit .activate angesprochen werden, da Office Script über Excel versucht, dieses als aktives Blatt zu aktivieren.
Vergleich zu VBA
In VBA nutzte ich ebenfalls .Activate oder .Select, um ein Blatt anzusprechen. Der Unterschied:
VBA interessierte es nicht, ob das Blatt ausgeblendet war oder nicht. Mit .Activate in VBA gab man dem Code mehr zu verstehen, das wir den Arbeitsbereich wechselten. Danach konnte man in VBA auch mit ActiveSheet... weiterarbeiten. VBA merkte sich, in welchem Tabellenblatt wir gerade tätig waren.
In Office Script gibt es zwar auch getActiveWorksheet(), aber man müsste dies immer explizt aufrufen mit workbook.getActivesheet()... Es in eine variable abzuspeichern, macht auch keinen Sinn, da man die variable bei jedem Tabellenblattwechsel neu definieren müsste. Da macht es mehr Sinn, die Tabellenblätter in Variablen abzuspeichern und immer diese anzusprechen.
Mein Fazit
.activate() ist eine einfache Möglichkeit, um in Office Script gezielt ein Tabellenblatt nach vorne zu holen. Wer aus VBA kommt, erkennt die Parallelen sofort. Der Unterschied liegt in der Handhabung der aktiven Variablen: In Office Script muss man bewusster arbeiten, wenn man mit getActiveWorksheet() weitermachen möchte, wobei ich dies nicht zwingend empfehlen würde.
Weitere interessante Beiträge:
Wie man ein Tabellenblatt anspricht über Office Script.
Warum Vorsicht bei getActiveWorksheet() in OfficeScript geboten ist




