Word 2013 VBA / Macro崩溃

时间:2016-04-15 14:13:46

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

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

这是在Windows 10和word 2013.该宏在Word 2007和Windows 7中运行良好。

可重复的步骤:

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

  2. 插入示例评论文字如下:(垂直添加如下:A:&(输入)等)

    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次。(相应地更新注释文本,清除所有&时)。

1 个答案:

答案 0 :(得分:0)

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