Vba 字抑制边距错误

Vba 字抑制边距错误,vba,ms-word,margins,Vba,Ms Word,Margins,打印Word(2010)文档时,我遇到了一个臭名昭著的错误 可打印区域外的页边距 我发现您可以使用以下宏抑制此警告: Public WithEvents App As Word.Application Private Sub App_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean) Dim bPrintBackgroud As Boolean 'Save current setting of back

打印Word(2010)文档时,我遇到了一个臭名昭著的错误

可打印区域外的页边距

我发现您可以使用以下宏抑制此警告:

Public WithEvents App As Word.Application

Private Sub App_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)

    Dim bPrintBackgroud As Boolean

    'Save current setting of background printing
    bPrintBackgroud = Options.PrintBackground
    Options.PrintBackground = False

    'Turn off DisplayAlerts
    Application.DisplayAlerts = wdAlertsNone

    Dialogs(wdDialogFilePrint).Show

    'Turn on DisplayAlerts again
    Application.DisplayAlerts = wdAlertsAll

    'Set original background printing setting
    Options.PrintBackground = bPrintBackgroud


End Sub
这是可行的,但在打印工作完成后,我仍然会得到页边距错误。所以脚本并没有真正抑制警告,只是延迟了警告。任何人都可以向我指出正确的方向以永久禁用此警告?

有两个选项:

a) 消除这个问题,这意味着将您的页边距放在可打印区域内

b) 永久设置
Application.DisplayAlerts=wdAlertsOne
,这是绝对不推荐的。在你的情况下,这意味着评论这句话:

'Application.DisplayAlerts = wdAlertsAll

但是,如果这样做,请记住在离开或关闭有边距问题的文档时运行上述代码。在其他情况下,您不会被告知您习惯于被告知的问题。

当我们更新打印机固件时,边距错误开始出现,这是因为维护问题而需要的。有几百字的文档存在此错误,因此重置每个文档上的边距并不是一个真正的选项,因为这也会稍微影响布局。不幸的是,对这句话的评论并不奏效。还是会出错。好的,我明白你的意思,用你的宏做了一些测试,检查了一些解决方案,我唯一的想法是在这里描述的,但这不允许打印到文件中