在Find.Execute上Word 2013崩溃

时间:2016-11-09 14:08:11

标签: c# vba ms-word vsto word-2013

我正在使用VSTO ThisAddIn和Word 2013.

我想使用Find.Execute将一个字符串的所有出现替换为另一个字符串,并使用自定义撤消消息标记此操作。代码是:

application.UndoRecord.StartCustomRecord("Some Message");

var find = application.ActiveDocument.Content.Find;
find.Execute("string to be replaced"
  , ReplaceWith: "second string"
  , Replace: WdReplace.wdReplaceAll);

application.EndCustomRecord();

因此,在此代码运行期间出现Word崩溃。如果我将Replace: WdReplace.wdReplaceAll更改为Replace: WdReplace.wdReplaceOne,我将会使用单词,但我需要替换所有出现的内容。

有任何建议/解决方法吗?

1 个答案:

答案 0 :(得分:1)

当您有一个空的自定义撤消并执行全部替换时,Word存在一些问题。我今天刚遇到这个问题。

This page解释得很清楚。

选项

  1. 替换一个,然后替换所有
  2. 通过在替换all之前对doc进行更改来解决此问题 撤消该更改
  3. 删除自定义撤消