none
Excel 2010: documents.open: Befehl Misslungen? RRS feed

  • Frage

  • Salü alle zusammen

    Im folgenden Codeabschnitt erhalte ich die Fehlermeldung 4198, Befehl misslungen auf der Zeile Set wd_File = word_App.documents.Open(vDatei)
    . Hat jemand eine Idee, was ich falsch gemacht habe? Das Dokument existiert und kann mit Word geöffnet werden, aber im Code welchen ich in Excel 2010 habe, kommt 4198. Warum?

    Vielen Dank für jegliche Hinweise

    der ganze Code:

    Sub TestOpen()
        Dim word_app As Object
        Dim wd_File As Object
       
        Set word_app = CreateObject("Word.Application")
        word_app.Visible = True
       
        Set wd_File = word_app.documents.Open("E:\Test.docx") ' <-- Hier erscheint der Fehler Befehl misslungen
        wd_File.Open
    End Sub

    Sonntag, 28. November 2010 20:10

Alle Antworten

  • Salü alle zusammen

    Im folgenden Codeabschnitt erhalte ich die Fehlermeldung 4198, Befehl misslungen auf der Zeile Set wd_File = word_App.documents.Open(vDatei)
    . Hat jemand eine Idee, was ich falsch gemacht habe? Das Dokument existiert und kann mit Word geöffnet werden, aber im Code welchen ich in Excel 2010 habe, kommt 4198. Warum?

    Vielen Dank für jegliche Hinweise

    der ganze Code:

    Sub TestOpen()
        Dim word_app As Object
        Dim wd_File As Object
       
        Set word_app = CreateObject("Word.Application")
        word_app.Visible = True
       
        Set wd_File = word_app.documents.Open("E:\Test.docx") ' <-- Hier erscheint der Fehler Befehl misslungen
        wd_File.Open
    End Sub

     

     

    Donnerstag, 25. November 2010 19:57
  • Hallo Sabrina,

    Du schreibst den Code in Excel, also VBA? Dann bist Du hier leider falsch. Dieses Forum wäre besser geeignet:

      http://social.msdn.microsoft.com/Forums/de-DE/officede/threads

    Zum Fehler selbst schau mal hier:

      http://www.google.de/#q=excel+4198

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Donnerstag, 25. November 2010 20:11
    Moderator
  • Hallo Sabrina

    [FRAGE WURDE ZUERST IM .NET FORUM GESTELLT]

    dein Code ist vom Vorgehen und Stil her derart vom in .NET üblichen entfernt, dass ich fast annehmen muss du hast dich im Forum geirrt?
    Donnerstag, 25. November 2010 20:14
  • Salü Stefan

    Vielen Dank für Deine Antwort. Habe die ersten 10 Ergebnise von Google durch geschaut. Aber nichts was irgendwie auf meine Lösung deuten würde. Danke Dir dennoch, ich probiers im Anderen Forum.

    Viele Grüsse
    Sabrina

    Sonntag, 28. November 2010 20:09
  • Hallo Sabrina,

    bei mir funktioniert der Code soweit problemlos. Den Fehler 4198 kann ich aber erzeugen, wenn ich das Dokument vor der Ausführung des Codes öffne und geöffnet lasse. Wenn man nach der Fehlernummer sucht, findet man häufig den Hinweis, das dann eben das Docx noch in Verwendung ist.

    Ist die Datei evtl. noch in Bearbeitung, vielleicht durch ein "unsichtbares" Word? => prüfe das ggf. im Taskmanager.


    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Montag, 29. November 2010 09:09
  • Hallo Sabrina Sanders,

    Habe folgendes gemacht: Eine Word 2010 Datei erstellt und unter C:\Temp\TestFile.docx gespeichert.

    In Excel 2010 VBA folgender Code wurde erfolgreich ausgeführt:

    Sub TestOpen()
      Dim word_app As Object
      Dim wd_File As Object
      
      Set word_app = CreateObject("Word.Application")
      word_app.Visible = True
      
      Set wd_File = word_app.documents.Open("C:\Temp\TestFile.docx")
      '//wd_File.Open
      Set word_app = Nothing
    End Sub
    

    Baue auch Fehlerprüfung in Deinen Code ein wie zum Beispiel: populate Word-Docvariables via VB-Code and set their values dynamically

    Wenn ich die Datei C:\Temp\TestFile.docx schon offen habe und den obigen Code ausführe bekomme ich in Word 2010 eine Anzeige die lautet: „TestFile.docx is locked for editing  by [USER] Do you want to: Open a Read Only copy | Create a local copy and merge your changes later | Receive notification when the original copy is available“

    Excel 2010 meldet folgendes: „Microsoft Excel is waiting for another application to complete an OLE action“

    Ich wähle zum Beispiel „Open a Read Only copy“, der Code in Excel endet.

    Grüße,

    Robert

    Dienstag, 30. November 2010 08:57
    Moderator
  • Hallo, Thomas,

    Thomas Scheidegger Dev:

    dein Code ist vom Vorgehen und Stil her derart vom in .NET üblichen entfernt, dass ich fast annehmen muss du hast dich im Forum geirrt?

    ?  .officede? VBA?

    Gruß - Mark

    Dienstag, 30. November 2010 11:35
  • Hallo Mark,
    dieser Thread erschien zuerst/auch im .NET Forum, wurde dann vom Moderator verschoben/zusammengeführt (beachte seine Markierungen).
    Dienstag, 30. November 2010 11:55
  • Hallo Mark,

    Thomas Scheidegger Dev:

    dein Code ist vom Vorgehen und Stil her derart vom in .NET üblichen entfernt, dass ich fast annehmen muss du hast dich im Forum geirrt?

    ?  .officede? VBA?

    • Zusammengeführt Robert Breitenhofer Microsoft, Moderator vor 3 Stunden 40 MinutenExcel 2010 - VBA
    Der Teil auf den sich Thomas Anmerkung bezieht war vorher im .NET Framework Forum platziert.

    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Dienstag, 30. November 2010 11:55
  • Hallo, Thomas und Torsten,

    Thomas Scheidegger Dev:

    dieser Thread erschien zuerst/auch im .NET Forum, wurde dann vom Moderator verschoben/zusammengeführt (beachte seine Markierungen).

    ah, Danke. Ich sehe das zunächst mal garnicht, wenn ich mit der CommunityBridge und 40tude arbeite.

    Gruß - Mark

    Dienstag, 30. November 2010 12:27
  • Hallo Mark,

    Vielen Dank für Deine Frage und Beitrag!

    Kein Problem. Du kannst ruhig die CommunityBridge verwenden.

    Dank der Hilfe der wunderbaren MVP’s wie Stefan und Thorsten und der Aufmerksamkeit von Thomas Scheiddeger, können wir meistens die Threads in die richtige Foren verschieben.

    Was sagst Du zu diesem Thema? Kannst Du nachvollziehen das was Sabrina sagt? Ich zum Beispiel habe nicht diesen „Run-time Error 4198 - Command Failed“ bekommen. Kann da etwas mit UserRights in Zusammenhang sein?

    Grüße,

    Robert

    Dienstag, 30. November 2010 13:01
    Moderator
  • Hallo, Robert,

    Robert Breitenhofer:

    Was sagst Du zu diesem Thema?

    ja, noch ein zweites Sorry hinterher, aber ich hatte Sabrina so
    verstanden, dass sie es in einem anderen Forum versucht und deshalb
    hier gar nicht mehr mitliest - daher meine inhaltliche Ignoranz.

    Kannst Du nachvollziehen das was Sabrina sagt? Ich zum Beispiel habe nicht diesen "Run-time Error 4198 - Command Failed" bekommen. Kann da etwas mit UserRights in Zusammenhang sein?

    Ich kann den genannten Fehler ebenfalls nicht reproduzieren, auch
    nicht, wenn ich das Dokument parallel öffne und ändere. Allerdings
    bekomme ich in der Zeile

      wd_File.Open

    "438 - Object doesn't support this property or method", was
    verwunderlich ist, da ein Word.Document natürlich ein .Open hat.

    Ich brauche diese Zeile aber auch nicht wirklich, da das Dokument ja
    gerade in der Zeile zuvor geöffnet wurde.

    Folgender Code läuft also bei mir

    Sub Test()
      Dim word_app As Object
      Dim wd_File As Object
      Set word_app = CreateObject("Word.Application")
      word_app.Visible = True
      Set wd_File = word_app.documents.Open("D:\Test.docx")
      ' später Set wd_File = Nothing ' nicht vergessen!
      ' später Set word_app = Nothing ' nicht vergessen!
    End Sub

    Gruß - Mark

    Dienstag, 30. November 2010 16:32
  • Salü alle zusammen

    Vielen lieben Dank für Eure vielen Antworten. Ich bin ja echt begeistert wie Ihr das hier "managt" mit dem Verschieben in die richtigen Foren.

    Die zu öffnende Datei ist vorgängig noch nicht geöffnet. Denn egal welche Datei ich zu öffnen versuche, ich habe immer den gleichen Fehler.

    Den On Error Resume Next habe ich eingebaut. Aber ich bekomme nur die Fehler Nr 4198, nix von 438 oder so.

    Und: Ja, ich lese sehr gespannt mit und werde sicher immer wieder hier her kommen.

    Werde wohl mal ein kleines separates Programm machen nur mit der einen Funktion für das Dokument öffnen. Aber nicht mehr heute.

     

    Vielen lieben Dank Euch allen.

    Gruss Sabrina

    Mittwoch, 1. Dezember 2010 23:18
  • Hallo, Sabrina,

    Sabrina Sanders:

    Werde wohl mal ein kleines separates Programm machen nur mit der einen Funktion für das Dokument öffnen.

    wenn Du das machen könntest, wäre es prima!
    Stelle einfach einen Link zu dem Download hierhin
    und wir können das alle mal testen.

    Viele Grüße - Mark

    Donnerstag, 2. Dezember 2010 10:22
  • Ich kann den genannten Fehler ebenfalls nicht reproduzieren, auch
    nicht, wenn ich das Dokument parallel öffne und ändere. Allerdings
    bekomme ich in der Zeile

      wd_File.Open

    "438 - Object doesn't support this property or method", was
    verwunderlich ist, da ein Word.Document natürlich ein .Open hat.

    Hallo Mark,

    wd_File entspricht in diesem Falle ActiveDocument und das kennt keine Methode zum erneuten Öffnen, also Fehler 438.

    Hang loose, Hartwig

    Donnerstag, 2. Dezember 2010 14:14
  • Hallo Sabrina,

    wenn ich Dein kleines Bespiel mit Office 2002 nachstelle, bekomme ich den Fehler 4198 immer dann, wenn das Dokument bereits geöffnet ist und ich den auftauchenden Dialog "Dokument wird verwendet" nicht mit OK bestätige.

    Vielleicht erläuterst Du einmal, was denn eigentlich mit dem Dokument passieren soll: willst Du Word von Excel heraus fernsteuern oder soll der User direkt damit arbeiten? Wie und wann soll Word wieder beendet werden?

    Hang loose, Hartwig

    Donnerstag, 2. Dezember 2010 14:25
  • Hallo, Hartwig,

    haklesoft:

    wd_File entspricht in diesem Falle ActiveDocument und das kennt keine Methode zum erneuten Öffnen, also Fehler 438.

    schön, dass das den Fehler erklären würde, wenn ich es denn verstünde! ;-)

    Nach meinem Objectbrowser gibt
      Set wd_File = word_app.documents.Open("D:\Test.docx")
     
    ein Document zurück und nicht ActiveDocument.
    Ist der verbogen?

    So, nochmal genau gelesen, was im Browser bei Document steht:
    es ist ein Event Open und keine Methode, daher der Fehler.
    Ich weiß also nicht, wie die Zeile

      wd_File.Open

    irgendwo funktionieren sollte...

    Gruß - Mark

    Donnerstag, 2. Dezember 2010 17:07
  • Servus Zusammen,

    ich wollte mal nachfragen, ob es für das Problem in diesem Thread eine Lösung gibt?

    Sabrina, hast du was gefunden?

    Ich habe nämlich das selbe Problem.

    LG

    Cybersnake

    Dienstag, 19. April 2011 09:06
  • Hallo Cybersnake84,

    Kannst Du bitte Dein Problem deutlicher und völlig beschreiben?

    Bekommst Du eine Fehlermeldung? Bitte schreibe die ganze Fehlermeldung die Du bekommst.

    Umfasse mindestens die folgenden Schritte in der Beschreibung Deines Problems:

    1) Eine Übersicht der Funktionsweise von dem Programm

    2) Das Ergebnis des aktuellen Codes

    3) Was erwartest Du dass Dein Code machen soll

    4) Den Inhalt der Eingabedateien (falls zutreffend)

    Schließlich, sagt uns diese Datensammlung, was Du von deinem Code erwartest, so dass wir vergleichen können, was es tut, mit dem was Du möchtest. Die meiste Zeit, können die MVP Experten und andere Mitglieder des Forums fast sofort eine Antwort auf Deine Frage geben, indem sie diese Informationen verwenden.

    Relevanter Code zu posten wäre auch nicht schlecht oder eine .zip Datei mit den Code (falls der Code zu groß ist) kann man ihm Public Ordner von SkyDrive laden und den link hier Posten. (Wie nutze ich den SkyDrive?)

    *******************************************************************************

    Habe es nochmals erfolgreich getestet: mit Excel 2010 ein Word 2010 Dokument dass schon auf der Festplatte gespeichert ist (noch nicht geöffnet) öffnen.

    Sub TestOpen()
    
    Dim word_app As Object
    Dim wd_file As Object
    
    Set word_app = CreateObject("Word.Application")
    word_app.Visible = True
    
    Set wd_file = word_app.Documents.Open("C:\Temp\TestFile.docx")
    '//wd_File.Open
    Set word_app = Nothing
    
    End Sub
    
    
    Sub TestOpen2()
    
    Dim mw As Object
    
    Const wd_file = "C:\Temp\TestFile.docx"
    Set mw = CreateObject("Word.Application")
    mw.Visible = True
    
    With mw
    .Documents.Open Filename:=wd_file
    End With '//mw
    
    '//mw.Application.Quit
    
    End Sub
    

     

     

    Danke und Grüße,

    Robert

    Dienstag, 19. April 2011 09:59
    Moderator
  • Hallo Robert,

    erstmal danke für die Antwort und hier mal die Details zu meinem Problem:

    Also ich bekomme einen Laufzeitfehler 4198 "Befehl misslungen".

    Das ganze geschieht in einem total simplen VB-Skript, dass ich in Word (Office 2010, Windows 7) erstellt habe. Es soll einfach ein Worddokument geöffnet und unter einem anderen Namen abgespeichert werden.

    Hier der Code:

    Private Sub CommandButton1_Click()
    
    
    
    Dim word As New word.Application
    
    
    
    word.Documents.Open("C:\Temp\test.doc")
    
    word.ActiveDocument.SaveAs("C:\Temp\123.doc")
    
    word.Visible = True
    
    End Sub
    
    
    
    

    Wir ihr seht total simpel (ist auch jetzt nur zur Problemanalyse erstellt worden). Schreibberechtigung auf C:\Temp usw. habe ich überprüft und funktioniert auch.

    Der Fehler passiert beim Statement word.Documents.Open("C:\Temp\test.doc")

    Unter dem Admin läuft alles. Das komische ist aber, dass es unter dem "normalen" User mal läuft und mal nicht?! Ich konnte bis jetzt auch nicht feststellen, unter welchen Bedienungen es funktioniert. Alles ein bißchen schwammig (mal abgesehen, dass die Fehlermeldung sehr dürftig ist). 

    Ich habe auch schon diverse Sicherheitseinstellungen runtergeschraubt (Makrosicherheit, usw.). Alles ohne Erfolg

    Unter Office 2003 läuft es ohne Probleme.

    LG

    Cybersnake


    Dienstag, 19. April 2011 11:20
  • Hallo Cybersnake84,

    Ich habe folgendes gemacht (Windows 7+Office 2010):

    Ein Word 2010 Doku erstellt und es in C:\Temp\test.docx gespeichert.

    Ein Neues Word 2010 Doku aufgemacht…in VBA angekommen mit Alt+F11. Hier auf UserForm1 ein CommandButton1 gezogen und folgenden Code geschrieben:

    [VBA]

    Private Sub CommandButton1_Click()
    
    	Dim word As New word.Application
    
    	word.Documents.Open ("C:\Temp\test.docx")
    
    	word.ActiveDocument.SaveAs2 ("C:\Temp\123.docx")
    
    	word.Visible = True
    	
    End Sub
    

     

    Alles wurde einwandfrei ausgeführt und ich hatte die Datei 123.docx auf der Festplatte unter C:\Temp\123.docx stehen.

    Welche Schritte sind anders bei Dir als meine obigen?

    Grüße,

    Robert

    Dienstag, 19. April 2011 14:07
    Moderator
  • Hallo Cybersnake84,

    Du hast gesagt auf einmal „Unter dem Admin läuft alles.“.

    Jetz mal unter dem "normalen" user: Welche Vorlage (Normal.dot) wird verwendet wenn Du den Fehler 4198 erhieltst? Liegt diese Normal.dot Datei in einem Netzwerk?

    Versuch mal eine lokale Vorlage zu verwenden bevor das Open wie zum Beispiel:

    Set doc = objWord.Documents.Add(“C:\Full\Path\To\Specific\template.dot”)

    Set doc = objWord.Documents.Open(“C:\Full\Path\To\Specific\document.doc”)

    Falls die Normal.dot im Netzwerk steht (dauert ein wenig bis sie ankommt) man kann vielleicht eine warte-Schleife einbauen bevor man  objWord.Documents.Open aufruft und solang MSWord.ActiveDocument.AttachedTemplate=““ ist.

    Noch zum lesen:

    http://www.ms-news.net/f1015/error-4198-befehl-konnte-nicht-ausgefuehrt-werden-9485334.html

    Grüße,

    Robert

    Mittwoch, 20. April 2011 08:10
    Moderator
  • Salü Cybersnake

    Wir haben bei uns noch keine Lösung gefunden. Wir warten und hoffen, dass der Anwender die Anwendung nicht mehr benötigt.

    Derweil haben wir ihm einen alten PC mit Office 2003 hin gestellt. Aber wirklich befriedigend ist es nicht.

    Vielen Dank an alle welche sich mit dem Teil befasen.

    Es würde mich schon brennend interessieren, wenn es eine Lösung gibt damit ich das Teil wieder richtig zum laufen bringe.

    Gruss Sabrina

    Dienstag, 10. Mai 2011 13:00
  • Hallo Sabrina,

    Hast Du geprüft was ich auch an Cybersnake84 geschrieben habe (das mit den Vorlagen)?

    http://social.msdn.microsoft.com/Forums/de-DE/officede/thread/436dc17e-016b-4a66-9f43-cd88dd55d7de#9215a20c-a86e-40e1-9976-a4a6b8623051

    Grüße,

    Robert

    Dienstag, 17. Mai 2011 06:44
    Moderator