vba - 使用 Excel PrintOut 方法时如何防止打印对话框

标签 vba excel printing printdialog

当我使用 PrintOut 方法将 Worksheet 对象打印到打印机时,即使我设置了 DisplayAlerts = False,也会显示“打印”对话框(显示文件名、目标打印机、打印的页面和取消按钮)。下面的代码适用于 Excel 宏,但如果我在 VB 或 VB.Net 应用程序中使用此代码,也会发生同样的情况(使用 Excel 对象所需的引用更改)。

Public Sub TestPrint()
Dim vSheet As Worksheet

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    Set vSheet = ActiveSheet
    vSheet.PrintOut Preview:=False

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

End Sub

编辑:下面的答案更清楚地说明了这一点(它可能是 Windows 对话框而不是 Excel 对话框),但没有回答我的问题。有谁知道如何防止它被显示吗?

编辑:感谢您的额外研究,凯文。看起来这很像是我所需要的。只是不确定我想盲目接受这样的 API 代码。还有其他人了解这些 API 调用以及它们正在执行作者声称的操作吗?

最佳答案

如果你不想显示打印对话框,那么只需进行如下宏测试即可;它不会显示任何打印对话框,并且会检测默认打印机并立即打印。

sub  test()

 activesheet.printout preview:= false

end sub

运行此宏,它将打印当前事件的工作表,而不显示打印对话框。

关于vba - 使用 Excel PrintOut 方法时如何防止打印对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67219/

相关文章:

vba - 数据透视表报告 - 获取切片器、图表和过滤器信息

iphone - 使用 UIMarkupTextPrintFormatter 时是否可以控制顶部和底部页边距?

java - 隐藏打印对话框

vba - 获取Excel表格中第一个单元格的行号和列号

vba - 使用 Vlookup 到多个工作表宏的多个工作表太长

c# - 在 C# 中读取 excel (.xlsx) 文件

c# - 我用C#代码下载文件时出现错误

python - 如何在 Vim 缓冲区中打印 python 代码的输出?

vba - VB 与 VBA 有什么区别?

sql - 从关闭的文件中获取最后一行和最后一列或 UsedRange(并保持关闭 - ADO)