Word Dokument direkt öffnen

josef24

Erfahrenes Mitglied
Habe jetzt Laufzeitfehler 91, "Objektvariable oder With-Blockvariable nicht festgelegt". Wo und wie muß ich da noch eingreifen? Danke bis dahin jedenfalls.
 

Zvoni

Erfahrenes Mitglied
Hast du dein Speichern nach diesem Teil?
Set appWord = Nothing
Set Bereich = Nothing
Set wordbereich = Nothing
Set wordDoku = Nothing

Dein Speichern-Aufruf muss direkt davor rein. Also WordDoku.Save blablabla

Übrigens: Wenn du schon die Objekte zerstörst, solltest du sie auch in umgekehrter Reihenfolge zur Geburt zerstören.
Du zerstörst die Word-App als erstes, und das Dokument als letztes. Die App wird als letztes zerstört!
 

josef24

Erfahrenes Mitglied
Danke, ist schon, aber der Fehlertext kommt vor wie nach. wie von mir in (#11) dargestellt.

Laufzeitfehler 91, "Objektvariable oder With-Blockvariable nicht festgelegt"

Wie muss ich die Variablen festlegen? Gruß Josef
 

Zvoni

Erfahrenes Mitglied
Dazu müsste ich deine ganze Routine sehen. Irgendwo verwendest du eine Objektvariable die nicht mehr gültig ist.
 

josef24

Erfahrenes Mitglied
Guten Morgen den Spezialisten. Habe mal den relevanten Code-Text hierhin kopiert. War mir im Post#7 noch nicht klar, dass ein Speichern dem vorangehen muss. Habe wie man sieht mehreres versucht, leider ohne Erfolg. Gruß Josef
Wenn ich so starte kommt zuerst der Hinweis: Datei bereits vorhanden. Danach "Laufzeitfehler 424, Objekt erforderlich."
Code:
End With
 wordbereich.Style = "Kein Leerraum"  ' Hiermit die Textformatierung "Kein Leerraum" bestimmen.
 wordDoku.PageSetup.Orientation = 0 ' Ausgabe des Worddokuments im Querformat
Bereich.AutoFilter
appWord.Application.Activate
SaveAs "C:\Users\Besitzer\Desktop\Dokument1.docx"
    Set appWord = Nothing
    Set Bereich = Nothing
    Set wordbereich = Nothing
    Set wordDoku = Nothing
'         wsTarget.Select
' Workbooks.Open ("Document1.docx")
 Documents.Open Filename:=("C:\Users\Besitzer\Desktop\Dokument1.docx"), ReadOnly:=True
'   Dim objDoc
'   Dim objWord As Object
'   Set wordDoku = CreateObject("Word.Application")
'   Set objDoc = wordDoku.Documents.Open("Document1.docx")
'   With wordDoku
' .activedocument.bookmarks("Document1.docx").Range.Text = inhalt
' .Documents.Open Filename:=("Document.docx")
' .Visible = True
' .Activate
'    End With
' objWord.Application.Quit
' Set objWord = Nothing
End Sub
 

Zvoni

Erfahrenes Mitglied
Mach ich zwar selten, aber ich bin mir sicher es muss irgendwie
"wordDoku.SaveAs" heissen.
Desweiteren hat die SaveAs-Methode sicher ein Flag, die es erlaubt, ein bereits bestehendes Dokument ohne Rückfrage/Fehlermeldung zu überschreiben.
 

josef24

Erfahrenes Mitglied
Habe es probiert und passt, aber:

Code:
wordDoku.SaveAs Filename:=("C:\Users\Besitzer\Desktop\Dokument1.docx")
Laufzeitfehler 91, Objekt. oder With-Varible nicht festgelegt.
Kann dies hier die Lösung gewesen sein?
Code:
Dim wordDoku As Object
Kann es das gewesen sein??
Oder diese Zeile ausschalten?
Code:
 Set wordDoku = Nothing
Geht noch ein ja oder nein?
Gruß Josef
 
Zuletzt bearbeitet:

Zvoni

Erfahrenes Mitglied
Hmm, kann sein, dass es ein der späten Bindung liegt. Auf den ersten Blick kann ich nicht wirklich was erkennen.
Kannst du mal die Objekte mit konkreten Klassen erstellen?
also
Dim appWord As Word-Application (oder wie auch immer das heisst)
Dim wordDoku As Document (oder wie auch immer es heisst)

Ansonsten mal ein frisches Projekt starten, in welchem du nur die Word-Application erstellst, ein Word-Document erstellst, und dann direkt das Document speicherst