Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1452to1456
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Word Vorlage.dotx Datei aus Excel füllen

Word Vorlage.dotx Datei aus Excel füllen
21.10.2015 22:19:41
Mark
Hallo Zusammen,
aus einer Excel Datei fülle ich per VBA in einen Word-Dokument bis zu 200 kleine Tabellen. In der Vorlage Datei habe ich für diesen Zweck 200 leere Tabellen angelegt und mit Bookmarks versehen. Anschließen fülle ich die benötigten Tabellen und lösche die Tabellen die "zuviel" sind. Funktioniert auch soweit, aber das abschließende löschen der unnötigen Tabellen dauert sehr lange (2 bis 4 Sek. pro Tabelle).
Hat jemand eine Idee warum das so lange dauert?
Nachstehend der Code für das löschen (Tabellen und CR). iCountRow gibt die verwendenten Tabellen an. Die höher "gebookmarkten" sollen gelöscht werden.
iCountRows = iCountRows + 1
For i = iCountRows To Word_Document.Tables.Count
Word_Document.Bookmarks("Table" + CStr(i)).Range.Tables(1).Delete
Word_Document.Bookmarks("Enter" + CStr(i)).Range.Characters(1).Delete
Debug.Print CStr(i)
Next i
Danke
Gruß
Mark

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Word Vorlage.dotx Datei aus Excel füllen
25.10.2015 17:09:04
fcs
Hallo Mark,
Laufzeitproblem: ?
Lösche die Objekte mal vom Ende des Dokuments
For i = Word_Document.Tables.Count To iCountRows Step-1
oder Probiere eine der folgenden Varianten, die von der 1. nicht benutzten Tabelle bis zum Dokumentende bzw. letzten Enter alles in einem Block löscht.
Sub Makro1()
' Makro1 Makro
Dim Word_Document As Object 'Word.Document
Dim i, icountRows
Dim wdRange As Object 'Word.Range
Set Word_Document = ActiveDocument 'Testzeile
icountRows = 6 'Testwert
'Löschen von leerer Tablle bis Ende Dokument
icountRows = icountRows + 1
Set wdRange = Word_Document.Bookmarks("Table" + CStr(icountRows)).Range
Set wdRange = Word_Document.Range(Start:=wdRange.Start, _
End:=Word_Document.StoryRanges(wdMainTextStory).End)
wdRange.Delete
'oder
icountRows = icountRows + 1
i = Word_Document.Tables.Count
Set wdRange = Word_Document.Bookmarks("Table" + CStr(icountRows)).Range
Set wdRange = Word_Document.Range(Start:=wdRange.Start, _
End:=Word_Document.Bookmarks("Enter" + CStr(i)).Range.End)
wdRange.Delete
End Sub

Gruß
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige