Hallo Freunde,
folgender Code sollte eine Word-Datei öffnen aber tut nicht und bringt die Meldung im Betreff.
Was könnte sein?
Private Sub Word_Click()
OpenWord ("C:\Projekt\Inland.docx")
End Sub
den folgenden Code habe ich im Internet gefunden, laut berichten sollte funktionieren aber tut nicht.
Public Sub OpenWord(Dateiname As String)
Dim appWord As Word.Application
Dim docWord As Word.Document
appWord.Documents.Open , ReadOnly:=True
appWord.Visible = True
appWord.Activate
AppActivate appWord.Caption
End Sub
Verweise für Office habe ich schon aktiviert!
Vielen Dank,
Zorlayan
Hallo,
appWord.Documents.Open , ReadOnly:=True
Es fehlt die Angabe der Datei, die geöffnet werden soll.
Die VBA-Hilfe und/oder der Objektkatalog sollte/n weiteren Aufschluss geben..
Danke für die schnellere Antwort aber habe ich nicht in den oberen Code die Datei angegeben? ???
Zitat von: zorlayan am April 30, 2019, 12:35:30
Danke für die schnellere Antwort aber habe ich nicht in den oberen Code die Datei angegeben? ???
Nicht dort, wo Word ihn braucht. Nämlich hier:
appWord.Documents.Open , ReadOnly:=True
ich habe in einem anderen Forum funktionierenden Code gefunden.
Hier:
Public Sub OpenWord ()
Dim objWord As Word.Application
Set objWord = CreateObject("Word.Application")
With objWord
.Visible = True
.Documents.Open "C:\temp\test.doc" 'das zu öffnende Worddokument
End With
objWord.ActiveDocument.PrintOut 'ausdrucken
' nicht speichern
objWord.ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
objWord.Quit
Set objWord = Nothing
End Sub
Ich kann die Word-Datei öffnen aber wie werde ich diesen Public Sub aus einem Privaten Sub aufrufen?
Mit welchem Befehl? Call etwa?
Zitat von: zorlayan am Mai 01, 2019, 21:35:52
ich habe in einem anderen Forum funktionierenden Code gefunden.
Code aus dem Internet zu kopieren ist oft ein brauchbarer Startpunkt. - Als nächsten Schritt solltest du dann versuchen, den Code wenigstens in den Kernpunkten auch zu verstehen. Dabei kann es helfen die konkreten Unterschiede in verschiedene gefundene Varianten zu vergleichen/analysieren.
Wenn du das mit deinem Code machst und die Hinweise in dem Thread hier nochmal dazu liest, solltest du in wenigen Minuten die Lösung finden. - Dabei lernst du wahrscheinlich mehr, als wenn hier jemand die Lösung postet und du sie nur in deinen Code kopierst. Wenn du nicht weiterkommst helfe ich gern.
Zitat von: zorlayan am Mai 01, 2019, 21:35:52
ich habe in einem anderen Forum funktionierenden Code gefunden.
Hier:
Public Sub OpenWord ()
Dim objWord As Word.Application
Set objWord = CreateObject("Word.Application")
With objWord
.Visible = True
.Documents.Open "C:\temp\test.doc" 'das zu öffnende Worddokument
End With
objWord.ActiveDocument.PrintOut 'ausdrucken
' nicht speichern
objWord.ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
objWord.Quit
Set objWord = Nothing
End Sub
Ich kann die Word-Datei öffnen aber wie werde ich diesen Public Sub aus einem Privaten Sub aufrufen?
Mit welchem Befehl? Call etwa?
Hi,
call sollte gehen, ohne auch.
In dem Code ist das enthalten, was im anderen gefehlt hat. Vergleiche mal die Zeilen mit Documents.open
In der 1. Variante hat das Dokument, welches geöffnet werden soll, gefehlt.
Genau das wollte Dir der Comilier mit der Fehlermeldung "Argument is nicht optional" damit sagen.
Zugegeben, die Meldung klingt erst mal überkomisch.
Aber Du sprichst mit Document.Open eine Methode der Klasse Word.Application an. Und diese Methode (was letztendlich eine Funktion oder Prozedur ist) möchte gerne einen Parameter haben. Dieser Paramter ist das Dokument, welches geöffnet werden soll. Ruft man diese Methode von außen auf (was Du machst), spricht man auch gerne von einem Argument (gemeint ist der Parameter).
Du hast die Methode ohne Argument zu übergeben aufgerufen. Und da hat der Compiler Dir gesagt, dass die Methode ein Argument benötigt, da - und das muss man verstehen - ein Argument auch optional sein kann (was es aber bei der Methode hier nicht ist). D.h., es muss da sein!
Ist ja auch logisch.
Stell Dir vor, Du hast einen Aktenschrank mit 100 Akten und dein Chef macht Dir Druck mit dem Befehl: Öffne die Akte.
Was machst Du? Welche der Akte öffnest Du?
vielen Dank, ausführlich erklärt.
Ich brauche wohl noch einige Übungen damit ich kapiere ;)