Hallo,
ich möchte in einer Tabelle per Skript eine variable Zahl an Zeilen am Anfang derselben zu Kopfzeilen umwandeln.
Dabei sollen ggf. Zellverbindungen erhalten bleiben.
Ein Ansatz mit Copy & Paste scheint spontan zu funktionieren.
(vor Ausführung des Skripts ist der Cursor in der Tabelle platziert)
Es fehlt noch eine Prüfung, ob vertikal verbundene Zellen den Bereich des Kopfs überschreiten.
Weil ich keine Möglichkeit gefunden habe, die Reihen über
itemByRange() auszuwählen, habe ich mir mit dem folgenden Konstrukt beholfen:
Aus unterschiedlichen Gründen (z.B. auch, weil mehrere ausgewählte Tabellen behandelt werden sollen) versuche ich Copy & Paste möglichst zu vermeiden. Deswegen verfolgte ich einen weiteren Ansatz, um die Aufgabe umzusetzen:
1. Definition des Kopfbereichs
2. Einarbeiten der Kopfzeilen (aus den bereits existierenden Zeilen am Anfang der Tabelle)
Die
rows kennen keinen
duplicate()- und keinen
move()-Befehl, mit dem Zeilen aus dem Tabellenkörper in den Tabellenkopf zu bewegen wären. Deswegen versuchte ich folgendes:
Nach der Definition des Kopfbereichs, bei der die entsprechende Anzahl der Kopfzeilen leer eingefügt wird, werden die noch leeren Kopfzeilen in ihrer Struktur (verbundene Zellen) der Strukur der einzuarbeitenden Zeilen angepasst.
Das will mir zwar mit horizontal verbundenen Zellen gelingen.
Aber die vertikal verbunden Zellen bereiten mir nicht enden wollendes Kopfzerbrechen.
Hier die entsprechende Funktion
insert_header(), welche die Funktion
make_header() im Skript oben ersetzt.
Hat jemand eine Idee, wie hier eine Routine zur Abbildung von vertikal verbundenen Zeilen und im Kopfbereich zu integrieren wäre?
Und wie könnte das als Steigerung in Kombination von sowohl horizontal als auch vertikal verbunden Zeilen aussehen?
Oder hat jemand eine Idee von einem ganz anderen Ansatz?