【问题标题】:VBA - Print 2nd Page of WebForm with .ExecWBVBA - 使用 .ExecWB 打印 WebForm 的第二页
【发布时间】:2015-09-03 20:49:21
【问题描述】:

我正在使用 Object.ExecWB 在我的 VBA 代码中打印出一个网页。具体来说,我正在使用这一行(IE 是“Application.InternetExplorer”对象):

Const OLECMDID_PRINT = 6
Const OLECMDEXECOPT_DONTPROMPTUSER = 2
IE.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER

它在打印页面方面应该这样做,但是,它不会打印正确的页面。

该网页是具有相同 URL 的网络表单,并且我拥有的代码执行正确的操作以到达我要打印的正确页面(表单的第二个“页面”或“屏幕”),但是命令仍然打印第一页。

如果我逐行浏览代码,它会打印正确的页面,但是,当我让它自己撕开时,它只会打印第一页,即使我可以清楚地看到 IE 导航到第二页打印前的页面。

我尝试将睡眠命令放入代码中,但无济于事。有人有什么想法吗?

为了清楚起见,这里是我正在尝试的代码的一些 sn-p(代码在 IE.document 上使用 with 语句):

   'this gets to the correct form page
   .getElementsByName("in_1060_1").item(0).Value = "1"
   .parentWindow.setCursorPosition "400", "HATSForm" 
   .parentWindow.ms "[enter]", "HATSForm"

    IEWait IE 'calls a sub that sleeps when IE is busy or not in readystate
    Sleep 5000

    'I then hit the 'OK' button to get to the 2nd page where the info I need to print is
    .parentWindow.ms "[enter]", "HATSForm"

    'yet it still prints out the first page! Ugh!
    Const OLECMDID_PRINT = 6
    Const OLECMDEXECOPT_DONTPROMPTUSER = 2
    IE.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER

【问题讨论】:

  • 您是否考虑过使用 JavaScript 隐藏第一页的内容,然后再恢复可见性?如果该解决方法不合适,您可以利用打印模板:msdn.microsoft.com/en-us/library/bb250434.aspx
  • 感谢@QZSupport - 这是去年的一个项目。我最终将打印屏幕发送到 Word 并打印了 Word 文档。有点复杂,但最终效果很好。

标签: vba internet-explorer printing webforms


【解决方案1】:

我最终将打印屏幕发送到 Word 并打印 Word 文档。有点复杂,但最终效果很好。

抱歉,我没有用于使其工作的代码,但它来自以前的工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多