朋友们,我正在尝试在使用打印输出命令时禁用显示警报。代码不工作,因为我得到运行时错误,如“只读”、“word转换器”、“无效引用类型”。我想抑制所有这些错误。我的代码如下,你能确认如何在2007中编写相同的单词,这在word 2003中可以正常工作。
If optCentral.Value = False Then
Set oPrint = GetObject(lbxResults.List(varLoop))
End If
End If
If optCentral.Value = True Then
'do nothing, already copied
ElseIf optPtrOver.Value = True Then
With oPrint
'Store existing print settings
bValueStoreUFAP = .Application.Options.UpdateFieldsAtPrint
bValueStoreULAP = .Application.Options.UpdateLinksAtPrint
bValueStoreDisplayAllerts = .Application.DisplayAlerts
'Change print settings, stops unwanted pop-up boxes
.Application.Options.UpdateFieldsAtPrint = False
.Application.Options.UpdateLinksAtPrint = False
.Application.DisplayAlerts = wdAlertsNone
'Print document
.PrintOut copies:=varCopies
'Restore original print settings
.Application.Options.UpdateFieldsAtPrint = bValueStoreUFAP
.Application.Options.UpdateLinksAtPrint = bValueStoreULAP
.Application.DisplayAlerts = bValueStoreDisplayAllerts
.Saved = True
.Close
发布于 2013-06-30 18:31:46
在VBA代码块(Sub
或Function
)的开头,使第一行如下:
On Error Resume Next
这可能会让你做你想做的事情。
总的来说,这是一种糟糕的做法。这将是一个草率和危险的解决方案。VBA提供了很好的错误处理工具,您可以应用这些工具。被禁止的错误报告的后果是巨大的。
也就是说,使用Resume Next
指令实际上可以很好地解决最初的问题。完全取决于你的情况,它甚至可能是一个适当的解决方案。
如果仍然收到错误,则说明您正在处理Word文档或文件结构中的问题。我认为这是有可能的。在这种情况下,您将在解决问题方面向前迈出一大步。但不要忘记删除Resume Next
指令。
https://stackoverflow.com/questions/17383106
复制相似问题