【发布时间】:2014-04-02 10:56:23
【问题描述】:
考虑 Word 2013 中的下表
A BBB
A CCC
D E F
A、B 和 C 是合并的单元格。
A 和 B 是空的。 C里面有文字A。
下面的代码
Set rng = ActiveDocument.Range(0, 0)
With rng.Find
.Forward = True
.Wrap = wdFindStop
.Execute "A"
End With
在Execute "A" 上崩溃。
如果我将文本更改为Execute "B",它不会找到任何内容,但不会导致单词崩溃。问题仅出现在 word 2013 中。
我们尝试过手动搜索和Selection.Find逐个单元格搜索,但是这两个都相当慢。
有没有快速的方法来规避这个错误?
编辑:这是我构建的最小失败示例。在我们的应用程序中,我们使用了很多 Range.Find,有时使用 wrap 并且几乎从不从 Document.Start 开始
EDIT2:进一步调查表明,如果您以兼容模式(Word 97-2003 格式)打开 Document,则不会出现错误。
【问题讨论】:
-
假设在这种情况下您不必避免使用 Selection.Find,那么 Range.Find 版本会做什么,例如选择整个文档或表格不适合您? (FWIW 我也看到了错误,使用 .Execute2007 也会使 Word 崩溃)。
-
您希望得到什么答案?我确实也检查了您的问题,但它也不适用于我。因此,我认为这是一个我们无法解决的简单“错误”。而且您似乎有一个使用
selection.find功能的解决方案。您提出的赏金目标是什么? -
A、B、C如何合并,但A、B为空?屏幕截图可以帮助我更好地理解,谢谢。
-
@PortlandRunner 板条箱表 3x3。合并第一列中的两个单元格,独立合并第二行和第三行中的最后两个单元格。
-
这是possible related issue。他们谈论查看 Windows 事件查看器以查找与崩溃相关的特定应用程序错误。即使该问题与您的问题不同,查看这些日志也可能会有所帮助。您可以通过单击“开始”--->“运行”来调出事件查看器,然后输入“eventvwr.msc”并回车。