1

在启用了注释部分的文档上运行 VBA/宏时,Word 2013 崩溃。该宏在注释部分和主文档中搜索一个字符并将其替换为“”(空白)。这是使用Selection.Find.ExecuteAPI 完成的。当没有评论部分或未选择标记时,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 都被清除时,相应地更新注释文本)。

4

1 回答 1

0

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

于 2018-04-30T12:39:45.237 回答