Einzelnen Beitrag anzeigen

GoTo0815

Registriert seit: 18. Mai 2004
148 Beiträge
 
Delphi XE2 Professional
 
#24

AW: Word Automatisation Beschleunigen

  Alt 16. Mär 2020, 21:33
Ich versuche das gerade umzusetzen. Bei einfachen Textersetzungen klappt das auch gut, aber wenn die Textmarke mit einer Tabelle gefüllt ist, dann habe ich Probleme, dass immer mehr Tabellen in einer Textmarke entstehen und nicht wie gewünscht nur eine neue Tabelle in der Textmarke.


Delphi-Quellcode:
  var ovBookmark, ovBRange : OleVariant;
      iRows, iCols : Integer;

  ovBookmark := 'NameDerTextmarke';
  ovBRange := WordApp.ActiveDocument.Bookmarks.Item(ovBookmark).Range;
  WordTable := WordApp.ActiveDocument.Tables.Add(ovBRange, iRows, iCols);
  // Dann wird die Tabelle mit Inhalt gefüllt.
  // ....
  // Später dann noch
  // Hier hatte ich auch schon versucht noch einmal nach dem Befüllen der Tabelle noch einmal ovBRange neu zu setzen.
  // Wenn ich ovBRange := WordApp.ActiveDocument.Bookmarks.Item(ovBookmark).Range; setze ändert das das Problem nicht. Es werden immer mehr Tabellen im Inneren der Bookmark.
  // Wenn ich ovBRange := WordTable.Range; setze, dann erhalte ich beim erneuten erstellen einer Tabelle die Meldung: "Der Bereich kann nicht gelöscht werden".
  WordApp.ActiveDocument.Bookmarks.Add(ovBookmark, ovBRange);
Also der erste Durchgang mit der frischen Vorlage funktioniert. Die Tabelle kann einwandfrei eingesetzt werden. Nur ab dem zweiten Durchgang werden es immer mehr Tabellen innerhalb einer Bookmark und es wird immer langsamer. Was klar ist.
Falls ich mal ein "DANKE" vergesse, hier schon mal eins im Voraus: Danke für Eure Zeit!

Geändert von GoTo0815 (16. Mär 2020 um 21:36 Uhr)
  Mit Zitat antworten Zitat