2016-06-16 13 views
0

Ich erhalte diese Fehlermeldung: "Laufzeitfehler 5981. Methode 'Hinzufügen' von Objekt 'Dokumente ' gescheitert." Dies passiert, wenn ich ein neues Word-Dokument mit einer Vorlage erstelle. Der Code wurde unten veröffentlicht und funktionierte gut, bis der zweite Benutzer in der Version 2016 begann, ihn zu benutzen. Es funktioniert gut für alle 2013 Benutzer, die die ältere Version der Word-Vorlage verwenden. Der Fehler wird angezeigt, wenn die Zeile Set wdDoc = wdApp ... darunter angezeigt wird.Excel erstellen neues Word-Dokument mit Vorlage: Laufzeitfehler 5981. Methode 'Hinzufügen' des Objekts 'Dokumente' fehlgeschlagen

Public wdDoc As Word.Document 
QuoteDirectory = "R:\PartsQuotes\" 
QuoteTemplate = "QuoteTemplate.dot" 'template used for 2013 users 
If Application.Version = "16.0" Then QuoteTemplate = QuoteTemplate2016.dotx" 
Set wdApp = CreateObject("Word.Application") 'Create an instance of word 
Set wdDoc = wdApp.Documents.Add(QuoteDirectory & QuoteTemplate) 'Open word file 
wdApp.Visible = True 

Ich brauche ein paar mehr Dinge mit dem Word-Dokument zu tun, nachdem es erstellt wird, weshalb ich es als Word.Document erstellen müssen. Ich kann die Fehlermeldung umgehen, indem ich eine zweite Vorlage für den zweiten 2016-Benutzer erstelle. Es wäre jedoch viel besser, eine gemeinsame freigegebene Vorlage für alle Benutzer zu haben.

+0

.Open versucht, die Vorlage zu öffnen –

+0

die Sie interessieren Ändern: QuoteTemplate2016.dotx "to" QuoteTemplate2016.dotx " –

+0

Ich werde das versuchen. Öffnen Sie die Vorlage heute Abend, wenn ich zu meinem Gerät zu Hause mit 2016 komme. Danke @Nathan_Sav –

Antwort

0

Meine eigene Excel-Anwendung öffnet eine Word-Vorlage.

Fehler 5981 ausgelöst werden, wenn diese Aussage Aufruf:

Set oTemplate = moWordApp.Documents.Add(template:=sTemplate, Visible:=True) 

Der Fehler auch dann ausgelöst werden, wenn ein vorhandenes Word-Dokument zu öffnen:

moWordApp.Documents.Open(FileName:=... 

In meiner Situation die Ursache für Fehler 5981 war, dass Die Word-Vorlage war kein vertrauenswürdiges Dokument. Beim manuellen Öffnen der Word-Vorlage wurde diese in protected view geöffnet. Wenn die Vorlage automatisch über VBA öffnet dies führt offenbar zu einem Fehler 5981.

+0

Danke für diesen Vorschlag. Ich werde es jedoch nicht testen können, wenn mein Kunde Probleme mit dem aktuellen Programm hat. –

+0

Hallo Russ, ich habe meine Antwort geändert, weil ich seit meinem letzten Post die wahre Ursache des Fehlers gefunden habe. – Mill

0

kann eine faule Lösung sein:

Dim wdDoc As Word.Document 
Set wdDoc = GetObject("R:\PartsQuotes\QuoteTemplate.dot", "Word.Application") 
wdDoc.Application.Visible = True 

Dies ein neues Dokument auf der Vorlage in der aktuellen Word-Instanz basierend geöffnet oder öffnet neue Word-Anwendung, wenn keine geöffnet ist.

Oder die .dotx Vorlage zuerst versuchen:

Dim wdDoc As Word.Document 
On Error Resume Next 
Set wdDoc = GetObject("R:\PartsQuotes\QuoteTemplate2016.dotx", "Word.Application") 
If Err.Number <> 0 Then 
    Set wdDoc = GetObject("R:\PartsQuotes\QuoteTemplate.dot", "Word.Application") 
End If 
If not wdDoc Is Nothing Then wdDoc.Application.Visible = True 
On Error GoTo 0 ' optional to reset the error handler 

Beachten Sie auch, dass * x Dateien mit Office ab 2007 geöffnet werden kann, wo .Application.Version = "12.0"

+0

Danke für diesen Vorschlag. Ich werde es jedoch nicht testen können, wenn mein Kunde Probleme mit dem aktuellen Programm hat. –