如何在Word VBA宏中消除打印边距过紧的警告?
解决Word VBA打印时边距过紧警告的问题
我之前也碰到过一模一样的情况——Application.DisplayAlerts = False确实能屏蔽很多Word的常规警告,但你遇到的这个边距过紧提示属于打印选项专属的警告,不在DisplayAlerts的管控范围内。
要彻底取消这个警告或者让它自动选择“是”,你需要单独控制Word的打印边距警告设置,具体做法如下:
- 首先保存用户原本的
PrintMarginsWarning设置(避免修改用户的默认偏好) - 临时关闭该警告开关
- 执行打印操作
- 最后恢复用户原来的设置
完整的VBA代码示例:
Sub PrintWithoutMarginWarning() Dim originalMarginWarning As Boolean Dim wDoc As Document ' 假设wDoc是你要打印的文档对象,根据实际情况调整 Set wDoc = ActiveDocument ' 或者你自己获取的文档对象 ' 保存用户原来的边距警告设置 originalMarginWarning = Application.Options.PrintMarginsWarning ' 关闭打印边距警告 Application.Options.PrintMarginsWarning = False ' 执行打印,同时保持DisplayAlerts关闭以屏蔽其他可能的警告 Application.DisplayAlerts = False wDoc.PrintOut Application.DisplayAlerts = True ' 恢复用户原有的边距警告设置 Application.Options.PrintMarginsWarning = originalMarginWarning End Sub
这样操作后,打印时就不会再弹出“Margins are too tight...”的警告了,文档会直接按照你的要求打印,完全符合你无法调整边距的需求。
内容的提问来源于stack exchange,提问作者Stefano




