【问题标题】:word 2013 VBA / Macro crashesword 2013 VBA /宏崩溃
【发布时间】:2016-04-15 14:13:46
【问题描述】:

在启用了 cmets 部分的文档上运行 VBA/宏时,Word 2013 崩溃。该宏在 cmets 部分和主文档中搜索一个字符并将其替换为“”(空白)。这是使用Selection.Find.Execute API 完成的。当没有 cmets 部分或未选择标记时,Word 不会崩溃。

这适用于 Windows 10 和 Word 2013。该宏在 Word 2007 和 Windows 7 中运行良好。

可重现的步骤:

  1. 创建一个包含一个文本的简单文档并添加注释。

  2. 插入示例注释文本如下:(垂直添加如:A : & (enter) 等)

    A: & B: & C: & D: & E: & F: & G: & H: & I: & J: & K: & L: & M: & N: &
    
  3. 创建宏:

    Sub Test_Macro()
        ActiveWindow.View.SplitSpecial = wdPaneComments
        With Selection.Find
                .Text = "&"
                .Replacement.Text = ""
                .Forward = True
                .Wrap = wdFindStop
                .Format = False
                .MatchCase = False
                .MatchWholeWord = False
                .MatchWildcards = False
                .MatchSoundsLike = False
                .MatchAllWordForms = False
        End With
    
        Selection.HomeKey unit:=wdStory
    
        If Selection.Find.Execute = True Then
           'We found the slash.  Delete it.
            Selection.TypeBackspace
        End If
    
    End Sub
    
  4. 执行宏(& 将被清除)。继续执行; Word 将崩溃 10 次中的 2-3 次。(当所有 &s 都被清除时,相应地更新评论文本)。

【问题讨论】:

  • 您收到的错误信息到底是什么,我们能看到错误的代码行和一些周围的上下文吗?
  • 单词崩溃。没有这样的错误消息。当我们查看事件查看器时,堆栈跟踪显示在 wwlib.dll 中。这是错误的代码行:'转到文档顶部 Selection.HomeKey unit:=wdStory If Selection.Find.Execute = True Then 'Word 在此处崩溃.. Selection.TypeBackspace
  • 单词在 selection.find.execute 处崩溃;当我用一些自定义逻辑更改逻辑时,word 2013 不会崩溃。需要知道是否必须安装任何微软更新或者它是一个错误?
  • 最可能的原因是 一些自定义逻辑 部分,如果不知道更多关于您要完成该 Word 的确切内容,很难说(阅读:不可能)不喜欢。
  • 如果您不包含重现问题的步骤(包括代码),任何人都无法帮助您。请阅读help center 中有关在本网站上提问的指南。

标签: vba ms-word windows-10 word-2013


【解决方案1】:

我在您的文字中没有看到问题,所以我无法回答,但我可以确认 Microsoft Word 2013 在ActiveDocument.Content.Find.Execute 上崩溃。我通常必须通过在执行宏之前手动执行替换对话框来解决这个问题。这(几乎)每次都有效。 现在我发现this post 说它与使用空撤消记录运行的执行有关。我可以通过在创建撤消记录后立即向文档的最后一段添加一些文本的代码行来解决此问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    相关资源
    最近更新 更多