首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >word 2003 VBA代码在word 2007中不起作用

word 2003 VBA代码在word 2007中不起作用
EN

Stack Overflow用户
提问于 2013-06-30 01:54:28
回答 1查看 262关注 0票数 0

朋友们,我正在尝试在使用打印输出命令时禁用显示警报。代码不工作,因为我得到运行时错误,如“只读”、“word转换器”、“无效引用类型”。我想抑制所有这些错误。我的代码如下,你能确认如何在2007中编写相同的单词,这在word 2003中可以正常工作。

代码语言:javascript
运行
复制
    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
EN

回答 1

Stack Overflow用户

发布于 2013-07-01 02:31:46

在VBA代码块(SubFunction)的开头,使第一行如下:

代码语言:javascript
运行
复制
On Error Resume Next

这可能会让你做你想做的事情。

总的来说,这是一种糟糕的做法。这将是一个草率和危险的解决方案。VBA提供了很好的错误处理工具,您可以应用这些工具。被禁止的错误报告的后果是巨大的。

也就是说,使用Resume Next指令实际上可以很好地解决最初的问题。完全取决于你的情况,它甚至可能是一个适当的解决方案。

如果仍然收到错误,则说明您正在处理Word文档或文件结构中的问题。我认为这是有可能的。在这种情况下,您将在解决问题方面向前迈出一大步。但不要忘记删除Resume Next指令。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17383106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档