Laufzeitfehler 4198 (Befehl misslungen) beim Öffnen eines Worddokuments

  • Word

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von cutter.

    Laufzeitfehler 4198 (Befehl misslungen) beim Öffnen eines Worddokuments

    Hallo Zusammen,

    beim Öffnen eines Worddokumentes über ein Makro, erhalte ich den Laufzeitfehler 4198 "Befehl misslungen".

    Folgenden Testcode habe ich geschrieben:

    Visual Basic-Quellcode

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


    Beim dem Statement word.Documents.Open ("C:\Temp\test.doc") erscheint die Fehlermeldung.
    test.doc ist vorhanden und Zugriffsrechte sind auch gesetzt.
    Das komische ist, dass mal geht und mal nicht (ich habe noch nicht den Grund herausgefunden). Beim Debuggen scheint es aber immer zu funktionieren. Ist ein ganz "schwammiges" Problem.
    Hat vielleicht jemand eine Idee?
    Das ganze läuft auf Windows 7 und Office 2010.
    Gruß
    Cybersnake

    Cybersnake schrieb:

    word.Documents.Open ("C:\Temp\test.doc")
    word.ActiveDocument.SaveAs ("C:\Temp\123.doc")

    Teste:

    Visual Basic-Quellcode

    1. word.Documents.Open Filename:="C:\Temp\test.doc"

    Alternativ:

    Visual Basic-Quellcode

    1. Set MyDoc = word.Documents.Open (Filename:="C:\Temp\test.doc")
    Man beachte die Klammerung!

    Windows 7 und Office 2010
    Beim Save würde ich dringend raten, das Format anzugeben, wenn du als .doc und nicht als .docx speichern willst.

    Visual Basic-Quellcode

    1. word.ActiveDocument.SaveAs Filename:="C:\Temp\123.doc", FileFormat:=wdFormatDocument97



    Aber möglicherweise liegt das eigentliche Problem viel näher:
    Machst du auch mal ein Close auf das Dokument?
    Möglicherweise ist das Dokument noch offen, wenn du den Open-Befehl absetzt.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „petaod“ ()

    Konnte den Fehler durch ein Delay beheben:

    Visual Basic-Quellcode

    1. Set objWord = CreateObject("Word.Application")
    2. 'wegen einer Fehlermeldung "Laufzeitfehler 4198" wurde, um das Problem zu umgehen, ein Delay von 1 sec. eingestellt
    3. Call Sleep(1000)
    4. Set objDocument = objWord.Documents.Open(Chr(34) & Me!txtDokument & Chr(34))


    Visual Basic-Quellcode

    1. Declare Sub Sleep Lib "kernel32" _
    2. (ByVal dwMilliseconds As Long)