Ich habe dies seit einiger Zeit erforscht und ich habe den folgenden Code erstellt. Ich bekomme jedoch immer einen Fehler. Siehe unten.
Die Absicht dieses Codes ist es, ein HTML-Dokument zu erzeugen. Dann öffnet es und druckt das Dokument von einem Drucker. Ich habe die Datei zum Speichern erfolgreich und öffne sie sogar in einem IE-Fenster. Dann bekomme ich den Fehler.Drucken Sie eine HTML-Datei mit VBA
Function generateResults()
Dim resultsBrowser As SHDocVw.InternetExplorer
Set resultsBrowser = New SHDocVw.InternetExplorer
Dim resultsPath As String
Dim resultsFile As String
resultsPath = ThisWorkbook.Path & "\As-Run Test Results"
If Len(Dir(resultsPath, vbDirectory)) = 0 Then
MkDir resultsPath
End If
resultsFile = resultsPath & "\As-Run " & Format(Now, "mm-dd-yyyy hmmss") & ".html"
Open resultsFile For Output As #1
Print #1, "<html><title>Test</title><body>Hello World</body></html>"
Close #1
resultsBrowser.Navigate resultsFile
Do While resultsBrowser.ReadyState = READYSTATE_COMPLETE
Loop
resultsBrowser.Stop
resultsBrowser.ExecWB 7, 1
resultsBrowser.Quit
Set resultsBrowser = Nothing
End Function
Hier ist die Fehlermeldung.
Wenn ich zu debuggen gehen, die VBA-Debugger verweist auf die folgende Zeile ein:
resultsBrowser.ExecWB 7, 1
Was mache ich falsch? Meine Forschung zeigt, dass dies für andere funktioniert, aber es scheint nicht für mich zu funktionieren. Eine andere Kuriosität ist, dass, wenn ich zu ungefähr: leer anstelle der HTML-Datei navigiere und die ReadyState-Prüfschleife auskommentiere, eine leere Druckvorschau erfolgreich kommt.
Ich vermute, Sie sagen wollen 'Do While resultsBrowser.ReadyState <> READYSTATE_COMPLETE'. Ansonsten kann ich bestätigen, dass dieser Code an meinem Ende funktioniert. Kannst du etwas mehr über deine Umgebung sagen? In welchem Kontext läuft das? – owenfromcanada
Sie müssen "InternetExplorerMedium" anstelle von "InternetExplorer" verwenden. – ib11