Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
244to248
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
244to248
244to248
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Übergabe an Word

Übergabe an Word
13.04.2003 10:27:23
Michael
Hallo Excler

Habe mir ein Makro zur Übergabe an Word gebastelt.

Das Makro nimmt as der Tabelle "Word" aus Spalte A den
Namen der Textmarke und Aus Spalte B den Inhalt.

Ich trage den Wert aus der Spalte B in die vorhandene
Textmarke in das Word Dokument ein, und benenne nachher
die Textmarke (da sie durch den Eintrag gelöscht wird)
wieder richtig, da ich sie in einem Wordmakro wieder brauche.

Es funktioniert sehr gut, allerdings braucht das Makro für
ca. 300 Einträge ziemlich (ca. 45 sec) lange.

Meine Frage:
Gibts vielleicht Verbesserungsvorschläge ?

Sub Fetz_ins_Word
Dim WordObj As Word.Application
Dim WordDoc As Word.Document
Dim TM, Text As String
Dim a, Zeilen As Integer
Dim ws As Worksheet
On Error GoTo w
AppActivate "Microsoft Word"
Set WordObj = Word.Application
GoTo n
w:
Set WordObj = CreateObject("Word.Application")
n:
'Vorlage öffnen
Set WordDoc = WordObj.Documents.Add("D:\dot\Meindoc.dot")
'Textmarken auslesen
Set ws = Worksheets("Word")
Zeilen = ws.UsedRange.Row + ws.UsedRange.Rows.Count - 1
For a = 1 To Zeilen
TM = ws.Cells(a, 1).Text
Wert = ws.Cells(a, 2).Text
WordDoc.Bookmarks(TM).Select
WordDoc.Parent.Selection.TypeText Text:=Wert
WordObj.Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
WordDoc.Parent.Selection.Bookmarks.Add Name:=TM
Next
End Sub

Vielen Dank für Eure Mühe
Michael




3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Übergabe an Word
13.04.2003 10:57:37
Michael Scheffler

Hi,

was mir auffällt, ist, dass Du "Late Binding" verwendest: "CreateObject". Wenn Du sicher bist, dass Du immer auf die gleichen Bibliotheken zugreifst, mach lieber einen Verweis oben in der VBE auf das Word-Objekt-Modell und lass das "CreateObject" weg, verwende "Early Binding":
Dim WordObj As Word.Application
Set WordObj = New .Application

Innerhalb der Schleife ein "DoEvents" wirkt manchmal Wunder:
WordDoc.Parent.Selection.Bookmarks.Add Name:=TM
DoEvents
Next

Aber generell muss man sagen, dass die Automatisierung sehr langsam ist.

Gruß

Micha




Anzeige
Re: Übergabe an Word
13.04.2003 11:05:29
Michael

Danke Micha

Werd' mal mit Stoppuhr ;-) testen.

lg
Michael



Re: Übergabe an Word
13.04.2003 12:58:58
Michael

Hallo

(Für alle dies wissen wollen)

DoEvent bringt nix.

Set WordObj = New Word.Application

Bringt ca. 10 sec

lg
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige