ChrisDaHub Geschrieben 6. Mai 2003 Geschrieben 6. Mai 2003 Hallo, in folgendem Code werden ausgewählte Dokumente geöffnet und gedruckt.. Wie kann ich nun ein geöffnetes Dokument inkl. der Anwendung wieder schließen? Private Sub Command1_Click() Dim MyObject, i As Integer For i = 1 To File.ListCount File.ListIndex = i - 1 Set MyObject = GetObject(File.Path & "\" & File.FileName) Set MyApp = MyObject.application MyApp.Visible = True MyApp.Printout Next i End Sub Wäre nett, wenn Ihr mir helfen könntet. Danke & Gruß, chris;-) Zitieren
g_nikolai Geschrieben 7. Mai 2003 Geschrieben 7. Mai 2003 also so wie ich das sehe einfach mit MyApp.Close Set MyApp = nothing oder das ganze mit MyObject Sollte dann funktionieren. Guido Zitieren
ChrisDaHub Geschrieben 7. Mai 2003 Autor Geschrieben 7. Mai 2003 Hi, mit deiner Lösung wird zwar das Word-Dokument geschlossen, aber nicht Word selbst. Da Word aber nicht geschlossen wird, wird das nächste Dokument nicht richtig geöffnet.. Es wird dann nicht "Aktiv", und ich kann es nicht ausdrucken. Jetzt müsste ich also noch wissen, wie ich: -entweder Word richtig beende, -oder wie ich das Dokument aktiviere, so dass ich drucken könnte. Gruß, Chris;-) Zitieren
ChrisDaHub Geschrieben 7. Mai 2003 Autor Geschrieben 7. Mai 2003 OK - ich schreib hier noch mal die Fehlermeldung hin, die er mir ausgibt: Run-time error '4605': This method or property is not available because a document window is not active. Wie aktiviere ich das geöffnete Dokument? Is wichtig Wenn mir jemand via PM seine eMail-Adresse zukommen lässt, schicke ich ihm das Projekt als ZIP-File zu. Danke, Chris Zitieren
neversaynever Geschrieben 7. Mai 2003 Geschrieben 7. Mai 2003 Hallo Chris, versuch's mal mit MyApp.Quit bevor Du Set MyApp = Nothing setzt. Ansonsten wäre es vielleicht ganz gut, vor dem Öffnen des Dokumentes abzufragen, ob Word schon geöffnet ist, bzw. ein Word-Objekt zu benutzen, z.B. so: Dim WordObj As Word.Application Und dann zum Prüfen, ob Word geöffnet ist: ' Ist Word geöffnet? Set WordObj = GetObject(, "Word.Application") ' Wenn nicht If Err = 429 Then Set WordObj = New Word.Application End If Und zum Beenden: WordObj.Quit Set WordObj = Nothing Bei Deiner Schleife mußt Du mal sehen. Ich habe jetzt nicht so viel Zeit, aber lass mich mal wissen, ob das geklappt hat. Mußt mal ein bißchen rumprobieren. Viel Glück und LG, Never :cool: Zitieren
DerMatze Geschrieben 8. Mai 2003 Geschrieben 8. Mai 2003 Oder als Code: if MyWord is nothing then set myword = new word.application else //hier brauchst du nix zu machen, hast dein Objekt ja schon, oder einfach das: set myword = nothing set myword = new word.application end if so hast du auf jeden Fall Word als neue Instanz. Bei den Office Anwendungen ist es wichtig, sie erst ordentlich zu beenden (App.quit, oder app.close) am Besten auch das aktuelle Document auch zu machen. Dann noch ein "set xx = nothing" und dann müßte es gehen ... M., der die Problem sehr gut kennt Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.