在Internet Explorer自动化期间禁止打印对话框

时间:2018-06-25 08:06:29

标签: vba excel-vba internet-explorer excel

我正处在一个庞大的项目中,这需要我通过电子表格来链接许多过时但仍有用的基于Intranet的数据系统,该电子表格会相应地分析数据。我的项目即将结束,并且已经开始连接这些系统的最后一个。但是我遇到的问题是,从中加载数据的主要网页具有onLoad事件,该事件有效地打开了打印对话框。由于此系统正在后台加载数据,因此这是不必要的行为。

不幸的是,我们的数据管理团队仍然需要使用当前形式的此系统,因此无法更改网页本身。

该网页包含以下导致问题的代码:

<body bgcolor="#ffffff" leftmargin="0" topmargin="0" background bgProperties="fixed" onload="javascript:printform();" >

以及触发命令以打开“打印”对话框屏幕的脚本:

<Script Language='JavaScript'>
function printform()
{
    print();
}
</script>

当我搜索一个解决方案时,我一直在努力寻找有关此主题的许多资源,但是最有前途的是使用ie.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER行。其中,ie是Internetexplorer对象。但是,在我的测试中,这不会阻止对话框的出现。您可以提供的任何帮助或指示将不胜感激。为了完整起见,以下是当前的调用代码:

Private ie As InternetExplorer
Private doc As HTMLDocument
Private pBarcodeStandard As String

Private Sub IE_Wait()

Do While ie.Busy Or ie.readyState = READYSTATE_LOADING: DoEvents: Loop

End Sub
Public Sub Import_TES_Data()

Set ie = New InternetExplorer
ie.Visible = False
ie.navigate "https://company.intranet.page.here/"
IE_Wait
Set doc = ie.document
doc.getElementsByName("itemNum")(0).value = pBarcodeStandard
doc.forms(0).submit

'After submitting the form (at this point) the webpage loads with the onLoad command

End Sub

0 个答案:

没有答案