Documents.Add schlaegt manchmal ohne Fehlermeldung fehl

03/03/2008 - 13:30 von Rainer H. Rauschenberg | Report spam
Hallo,

ich aergere mich mit den Nachwehen der Umstellung von Word 97 auf Word
2003 rum ...

An verschiedenen Stellen erzeuge ich ein neues Dokument, mache kurz was
darin und schliesse es gleich wieder (ohne es zu speichern).
Merkwuerdigerweise schlaegt manchmal das Documents.Add ohne
Fehlermeldung fehl -- es gelingt mir momentan auch im Debug-Modus nicht,
damit in dieser Situation ein neues Dokument zu erzeugen (Ctrl-N im Word
funktioniert ...).

Hat irgendjemand eine Idee?

Rahmenbedingungen: Office 2003 SP 3, Windows 2003 Server SP 1,
typischerweise mehrere mit "/w" parallel gestarte Word-Instanzen
(irgendwie muss man den Vierkern-Prozessor doch auf 100% Auslastung
bringen :-) ).

Rainer "TIA" Rauschenberg

p.s.: Weil ja eh die Frage nach einem Codeschnipsel kommen wird:

Static feldartstring_wdFieldIncludeText As String
Dim thisdoc As Document
Dim tmpdoc As Document
If feldartstring_wdFieldIncludeText = "" Then
Set thisdoc = ActiveDocument
Set tmpdoc = Documents.Add
Set tmpfield = tmpdoc.Fields.Add(Selection.Range, wdFieldIncludeText, "", False)
feldartstring_wdFieldIncludeText = Trim(tmpfield.Code)
tmpfield.Delete
tmpdoc.Close wdDoNotSaveChanges
thisdoc.Activate
End If
 

Lesen sie die antworten

#1 Thomas Gahler
03/03/2008 - 14:05 | Warnen spam
Hallo Rainer


An verschiedenen Stellen erzeuge ich ein neues Dokument, mache kurz was
darin und schliesse es gleich wieder (ohne es zu speichern).
Merkwuerdigerweise schlaegt manchmal das Documents.Add ohne
Fehlermeldung fehl


Aber in dein If wird schon rein gesprungen, das hast du sicher geprüft,
oder?

Und du hast kein 'On Error Resume next' drin?
Vielleicht sicherheitshalber mal zurück setzen mit 'On Error goto 0'

Dim tmpdoc As Document
Set tmpdoc = Documents.Add


Code noch ein wenig anpassen, bringt wohl auch nicht viel
- Dim tmpdoc As Word.Document
- Set tmpdoc = Documents.Add (normaltemplate.fullname)



Set tmpfield = tmpdoc.Fields.Add(Selection.Range, wdFieldIncludeText, "",
False)


Der einfach so weil schöner
- Set tmpfield = tmpdoc.Fields.Add(tmpdoc.Range, wdFieldIncludeText, "",
False)





Thomas Gahler
MVP für WordVBA
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows XP (SP2), Office XP (SP3)

Ähnliche fragen