Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1100to1104
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
Laufzeitfehler 4605
{Boris}
Hi Leute,
ich bekomm den Laufzeitfehler 4605
Diese Methode oder Eigenschaft ist nicht verfügbar, weil kein Dokumentfenster aktiv ist
in der markierten Zeile
Dim objWD As Object
Dim strMyDoc As String
strMyDoc = Application.GetOpenFilename("Word Dateien (*.doc),*.doc")
If strMyDoc = "Falsch" Then Exit Sub
Set objWD = GetObject(strMyDoc)
With objWD
.Range.Copy
.Close False '
Auf der Microsoftseite heißt es dazu:
Dieses Problem kann auftreten, wenn Sie kein Dokument geöffnet haben, oder wenn das angegebene  _
Dokument nicht geöffnet ist. Word kann nur die Eigenschaften eines geöffneten (oder sichtbaren) Dokuments ändern.
Hinweis: Diese Fehlermeldungen können auch auftreten, wenn Sie das Dokument öffnen, wobei die Eigenschaft Sichtbar auf Falsch gesetzt ist.
Mit On Error kann ich die Meldung zwar wegbügeln - aber das muss doch auch anders gehen? Mit dem Word-Objektmodell bin ich leider gar nicht vertraut.
Danke vorab und
Grüße Boris

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Laufzeitfehler 4605
14.09.2009 17:01:10
JogyB
Hi.
Hmm... bei mir läuft das unter Office 2003 problemlos durch.
Setz mal noch ein objWD.Parent.Visible = True vor den Schliessen-Befehl.
Gruss, Jogy
Das gibt nene Laufzeitfehler 5863
14.09.2009 17:11:26
{Boris}
Hi Jogy,
Visible ist keine Methode
Habe jetzt aber gemerkt, dass der Ursprungscode problemlos läuft, wenn bereits eine Wordinstanz geöffnet ist. Aber das muss ja nun nicht immer zwangsläufig der Fall sein, daher bleibt die Frage, wie es anders geht (zumindest in meiner hiesigen 2000er-Version).
Danke Dir schon mal und
Grüße Boris
Mea Culpa...
14.09.2009 17:20:22
{Boris}
Hi,
es gibt natürlich keinen Laufzeitfehler, wenn man es richtig schreibt... :-(
Allerdings hab ich dann ne Wordinstanz offen - bekommt man die auch noch weg?
Grüße Boris
Anzeige
AW: Mea Culpa...
14.09.2009 17:36:20
JogyB
Hi.
Versuch es mal so:
Sub test()
Dim objWD As Object
Dim appWD As Object
Dim strMyDoc As String
strMyDoc = Application.GetOpenFilename("Word Dateien (*.doc),*.doc")
If strMyDoc = "Falsch" Then Exit Sub
On Error Resume Next
' Gibt einen Fehler, wenn Word noch nicht offen
' Ist dann noch Nothing
Set appWD = GetObject(, "Word.Application")
On Error GoTo 0
Set objWD = GetObject(strMyDoc)
If appWD Is Nothing Then
' Wenn es Nothing ist, dann war Word noch nicht offen,
' dann muss man die Application zuweisen, damit sie geschlossen
' werden kann
Set appWD = objWD.Parent
Else
' Wenn Word schon offen war, dann ist appWD nicht Nothing
' Setze es in dem Fall auf Nothing, da es nicht geschlossen werden soll
Set appWD = Nothing
End If
With objWD
.Range.Copy
.Parent.Visible = True
.Close False '

Unter 2003 geht es so. Allerdings ist der Objektzugriff da etwas seltsam, da das Verhalten der einzelnen Office-Applikationen bei 2003 in manchen Bereichen unterschiedlich ist. Da kann es durchaus sein, dass sich 2000 wieder anders verhält.
Gruss, Jogy
Anzeige
Dann würde ich es aber...
14.09.2009 17:40:57
{Boris}
Hi Jogy,
...doch eher "quick and dirty" auf diese Weise machen:
Dim objWD As Object
Dim strMyDoc As String
strMyDoc = Application.GetOpenFilename("Word Dateien (*.doc),*.doc")
If strMyDoc = "Falsch" Then Exit Sub
Set objWD = GetObject(strMyDoc)
With objWD
.Range.Copy
On Error Resume Next
.Close False
On Error GoTo 0
End With

Das läuft einwandfrei.
Aber ich check das wie gesagt heute Abend mal unter xl2007 - und melde mich später wieder.
Grüße Boris
AW: Dann würde ich es aber...
14.09.2009 17:43:08
JogyB
Hi.
Ist dann Word auch wirklich zu? Oder nur nicht angezeigt? Würde ich mal im Taskmanager prüfen. Vermutlich ist dann sogar das Dokument noch offen.
Gruss, Jogy
Anzeige
AW: Das gibt nene Laufzeitfehler 5863
14.09.2009 17:24:18
JogyB
Hi.
Sorry, kann es nicht nachvollziehen, da es bei mir mit Office 2003 problemlos geht... aber mal zur Sicherheit: Wird das überhaupt korrekt geöffnet, d.h. ist ein Objekt da? Vermutlich ja, denn sonst würde der Fehler früher auftreten, aber man weiss ja nie.
Ich würde an Deiner Stelle mal noch die Microsoft Office Word Object Library (2000 müßte 9.0 sein) als Verweis aufnehmen, dann kannst Du das objWD als Word.Document deklarieren und siehst gleich, welche Methoden und Eigenschaften zur Verfügung stehen.
Gruss, Jogy
AW: Das gibt nene Laufzeitfehler 5863
14.09.2009 17:26:23
{Boris}
Hi Jogy,
das mit dem anderen Laufzeitfehler hatte sich ja erledigt.
Ich check das mal auf meinem Rechner unter xl2007 - mal sehen, was da raus kommt.
Melde mich daher wohl erst heute Abend oder morgen wieder!
Danke bisweilen und
Grüße Boris
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige