【问题标题】:Word 2013 Crash on Find.ExecuteFind.Execute 上的 Word 2013 崩溃
【发布时间】:2017-03-23 09:06:27
【问题描述】:

我正在使用 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 Crash。如果我将Replace: WdReplace.wdReplaceAll 更改为Replace: WdReplace.wdReplaceOne,我将有文字工作,但我需要替换所有出现的地方。

有什么建议/解决方法吗?

【问题讨论】:

  • 这可能与相关文档有关,而不是一般问题。可能是文档中使用的特定格式或 Word 功能存在问题。您可以尝试缩小范围,从文档中删除内容,直到宏起作用。
  • 感谢您的想法,但我只是尝试使用一个新的空文档来完成它,它也崩溃了。

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


【解决方案1】:

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

This page 解释的很好。

选项

  1. 替换一个,然后替换所有
  2. 解决方法是在全部替换之前更改文档,然后 撤消该更改
  3. 删除自定义撤消

【讨论】:

  • 是的,你是对的。我很久以前就选择了选项 1。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多