【发布时间】:2016-05-27 16:40:21
【问题描述】:
我已经对此进行了一段时间的研究,并提出了以下代码。但是,我不断收到错误消息。见下文。
此代码的目的是生成 HTML 文档。然后它打开并从打印机打印文档。我已经成功保存文件,甚至在 IE 窗口中打开它。然后我得到了错误。
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
这是错误信息。
当我去调试时,VBA 调试器指向以下行:
resultsBrowser.ExecWB 7, 1
我做错了什么?我的研究表明这对其他人有效,但似乎对我无效。另一个奇怪的是,如果我导航到 about:blank 而不是 HTML 文件并注释掉 ReadyState 检查循环,则会成功显示空白打印预览。
【问题讨论】:
-
我猜你想说
Do While resultsBrowser.ReadyState <> READYSTATE_COMPLETE。否则,我可以确认此代码对我有效。你能多谈谈你的环境吗?你在什么环境下运行这个? -
您需要使用
InternetExplorerMedium而不是InternetExplorer。