【发布时间】: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 中运行良好。
可重现的步骤:
创建一个包含一个文本的简单文档并添加注释。
-
插入示例注释文本如下:(垂直添加如:A : & (enter) 等)
A: & B: & C: & D: & E: & F: & G: & H: & I: & J: & K: & L: & M: & N: & -
创建宏:
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 执行宏(
&将被清除)。继续执行; 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