ActiveCell.Characters anhängen ohne Änderung Formatänderung
19.02.2025 19:32:44
Roland
ich verwende Excel, um Aufgaben zu verfolgen bzw. mit Filter erledigte Aufgaben ausblenden. Dabei stehen die Aufgaben in einer Spalte des Tabellenblattes.
Mit einem VBA wird in ActiveCell ein Zeilenumbruch und der String sdate = "[ " & Format(Date, "DD.MM.YYYY") & " ]" eingefügt.
Dieses String weicht vom Zellformat allgemein ab und wird z.B. in "Fett" "hochgestellt" "2 Punkte größere Schrift" eingefügt. Der Anwender kann danach seinen Text einfügen und bei Zelle bearbeiten "F2" muss der Schriftstil wieder dem der Zelle allgemein entsprechen.
Bei erneutem Einfügen eines sdate müssen bereits vorhandene "Datumstempel" nach wie vor in geänderter Schrift bestehen bleiben.
Für die Aufgabe nutze ich
ActiveCell.Characters(iLen + 1, 0).Insert (sDate).
Allerdings funktioniert das nur für Gesamtanzahl Characters 255. Wenn mehrere Ergänzung mit "Datumsstempel" eingefügt werden, überschreitet Len(ActiveCell.Value) die Grenze.
Die Verwendung von ActiveCell.Value = ActiveCell.Value & sDate bei Len(ActiveCell.Value) > 255 funktioniert natürlich auch bei mehr als 255 Zeichen. Das Einlesen jedes einzelnen Characterformats mit z.B. cell.Characters(i, 1).Font in ein Array und anschließendem Zurückformatieren jedes Characters dauert, wegen Zugriff auf die Zelle, viel zu lange.
Kennt jemand eine bessere Lösung. Danke im Voraus. Roland
Anzeige