友 我正在尝试在使用printout命令时禁用显示警报。代码不起作用,因为我得到了运行时错误,例如“只读”,“#转换器”,“无效的引用类型'”。我想压制所有这些错误。我的代码如下 你能否确认如何在2007年对相同的单词进行编码,这在单词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
答案 0 :(得分:0)
在VBA代码块的开头(Sub
或Function
),请将第一行设为:
On Error Resume Next
这可以让你做你想做的事。
一般而言,这是不好的做法。这将是一个草率和危险的解决方案。 VBA提供了很好的错误处理工具,您可以应用它们。抑制错误报告的后果很重要。
也就是说,使用Resume Next
指令实际上可以用于初始故障排除。完全取决于您的情况,它甚至可能是一个适当的解决方案。
如果仍然收到错误,那么您正在处理Word文档或文件结构中的问题。我认为这很可能。在这种情况下,您将在解决问题方面迈出一大步。只是不要忘记删除Resume Next
指令。