Fehler 438

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Fehler 438
von: thomas
Geschrieben am: 14.10.2003 16:08:12

Hallo!

Im nachstehenden Code kommt es zu einem kleinen Problem. Über einen CommandButton wird das Program aktiviert. Wie gedacht öffnet sich der Pfad, die Datei kann man auswählen und sie öffent sich auch in Word. Nur wird mir immer in Exel ein Fehler angezeigt (Laufzeitfehler 438). Meine Kenntnisse sind noch nicht so groß, so dass ich mit der Online-Hilfe auch nichts so richtig anfangen kann.
Vielleicht kann mir ja hier jemand helfen den Fehler zu beseitigen.



Dim fFile As Variant

ChDir "c:\dateixy"

fFile = Application.GetOpenFilename("Word-Dateien (*.doc),*.doc")
CreateObject("word.application").documents.Open(fFile).applicaton.Visible = True
If fFile = False Then Exit Sub

Danke und Gruß

Thomas

Bild


Betrifft: AW: Fehler 438
von: Ramses
Geschrieben am: 14.10.2003 16:12:08

Hallo

die Zeile

CreateObject("word.application").documents.Open(fFile).applicaton.Visible = True

kannst du weglassen, da du die Datei mit

fFile = Application.GetOpenFilename("Word-Dateien (*.doc),*.doc")

bereits öffnest und so eine Zugriff Verletzung auftritt, da du sie zum zweiten Mal öffnen willst.

Gruss Rainer


Bild


Betrifft: AW: Fehler 438
von: Thomas
Geschrieben am: 14.10.2003 16:20:49

Danke für die schnelle Antwort, aber wenn ich die Zeile weglasse öffnet Exel Word nicht.
Der Fehler tritt erst nachdem die Create-Zeile abgearbeitet ist auf. Mit oder ohne scheint es wohl nicht zu funktionieren. Vielleicht weißt du noch einen anderen Rat.

Gruß Thomas


Bild


Betrifft: Mein Fehler :-)
von: Ramses
Geschrieben am: 14.10.2003 16:29:40

Hallo,

das muss am frühen Morgen hier in San Francisco liegen ;-)
Verwende das, damit funktioniert es:


Sub demo_File_Open()
Dim fFile As Variant
Dim myWord As Object
'Fehlerroutine für die Objectabfrage aktivieren
On Error Resume Next
'Abfragen einer besthenden WORD-Instanz um wiederholtes starten zu verhindern
'9 = Word 2000, 10 = Word XP
Set myWord = GetObject("Word.Application.10")
'Hier muss der der Dateiname stehen der verwendet werden soll
ChDir "c:\"
fFile = Application.GetOpenFilename("Word-Dateien (*.doc),*.doc")
If fFile = False Then Exit Sub
If Err.Number <> 0 Then
    'Fehlervariable leeren wenn Instanz noch nicht besteht
    Err.Clear
    'Zuweisung der Instanz
    Set myWord = CreateObject("Word.Application.10")
    'Instanz öffnen
    'Um das ganze etwas im Hintergrund laufen zu lassen
    'kann man den Status "wdWindowStateMinimize" verwenden
    myWord.Visible = True ': objWW.WindowState = wdWindowStateMaximize
Else
    'Instanz besteht bereits
    myWord.Activate
    'Instanz in der Vordergrund bringen oder
    'mit "wdWindowStateMinimize" im Hintergrund ausführen
    myWord.Visible = True ': objWW.WindowState = wdWindowStateMaximize
End If
myWord.Application.Documents.Open fFile
End Sub



Gruss Rainer


Bild


Betrifft: AW: Mein Fehler :-)
von: thomas
Geschrieben am: 14.10.2003 17:02:23

Hallo,

es geht leider immer noch nicht, Word.appliaction habe ich auf 9 gesetzt, die Zieladresse auch bestimmt. Das Programm macht alles richtig, es geht in Pfad, zeigt ihn mir an und ich kann die Datei auswählen. Aber es öffnet sie nicht, Word wird nicht aktiviert, bei dieser, bzw. nach dieser Zeile ist Schluß:

fFile = Application.GetOpenFilename("Word-Dateien (*.doc),*.doc")


Danach kommt ja nichts mehr was direkt damit zu tun hat, wenn ich das so richtig verstanden habe. Fehler zeigt Excel keine an. Vielleicht weißt ja noch weiter am frühen Morgen. Hier in Hamburg geht gerade so langsam die Sonne unter.

Thomas


Bild


Betrifft: AW: Mein Fehler :-)
von: Ramses
Geschrieben am: 14.10.2003 23:09:42

Hallo thomas

der Code ist getestet und funktioniert.
Hast du in deiner VB-Umgebung den Verweis auf das Word-Object gesetzt ?

Im VB-Editor

Extras - Verweise - Microsoft Word 9.0o Library

Gruss Rainer


Bild


Betrifft: AW: Mein Fehler :-)
von: thomas
Geschrieben am: 15.10.2003 09:01:41

Hallo Rainer,

diesmal war es mein Fehler, ich hatte vergessen "Set myWord = CreateObject("Word.Application.9")auf 9 zu setzten, jetzt funktioniert es.
Vielen Dank für die Hilfe.

Gruß aus Hamburg

Thomas


Bild


Betrifft: Merci o.T.
von: Ramses
Geschrieben am: 15.10.2003 09:20:07

...


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Fehler 438 "