Office Script: getUsedRange() verstehen
In diesem Beitrag erkläre ich, was getUsedRange() in Office Script macht und wie die Werte als 2D-Array zurückgegeben werden. Außerdem zeige ich, warum man beim Einfügen an anderer Stelle die Ziel-Range exakt dimensionieren muss.
EXCELOFFICE SCRIPT
9/24/20251 min read


Office Script: getUsedRange() verstehen
Heute habe ich mir getUsedRange() angesehen. Die Methode liefert mir den Bereich, der in einem Tabellenblatt tatsächlich belegt ist, also vom ersten bis zum letzten genutzten Zellbereich (ohne leeren Rand drumherum). Auf diesem Bereich kann ich dann z. B. die Werte abholen.
Mein Aha-Moment
Wenn ich vom getUsedRange() die Inhalte abfrage (z. B. Werte oder Texte), erhalte ich sie als zweidimensionales Array. Praktisch gedacht: eine Zeile = ein Array, darin die Spaltenwerte als einzelne Elemente.
Das heißt:
– Anzahl der Arrays = Anzahl der Zeilen
– Anzahl der Indizes je Array = Anzahl der Spalten
So kann ich zeilenweise durch die Daten gehen, filtern, transformieren oder später weiterverarbeiten.
Inhalte zwischenspeichern und die Stolperfalle beim Einfügen
Ich kann den Inhalt des Used Range bequem in einer Variable zwischenspeichern (z. B. für Transformationen). Will ich diesen 2D-Array später woanders einfügen, reicht „einfach reinkopieren“ nicht.
Office Script braucht dafür eine definierte Ziel-Range mit exakt passender Größe:
– gleich viele Zeilen wie das äußere Array,
– gleich viele Spalten wie die Länge der inneren Arrays.
Stimmen die Dimensionen nicht, gibt’s Fehler. Wie man die Ziel-Range korrekt dimensioniert (Indexierung, Größe bestimmen, sauber zuweisen), zeige ich in einem separaten Beitrag.
Mein Fazit
getUsedRange() ist der schnellste Weg, um den tatsächlichen Datenbereich eines Blatts zu greifen. Denkweise: „Zeilenarray von Spaltenarrays“. Beim späteren Einfügen unbedingt an die identische Range-Größe denken – dann klappt der Rundtrip Speicher → Zielbereich zuverlässig.
Weitere interessante Beiträge:








