我使用Microsoft.Office.Interop.Word基于另一个doc创建新的doc。使用Range.Text进行多次搜索/替换操作迭代,所有工作都非常快。但是,在一种情况下,我需要复制整个章节的所有格式,而不是Range.Text(它重置所有格式)我使用Range.Copy和Range.Paste。它们有效,但对于大约450字的测试章节,它们需要40秒(当我更改相同的代码以使用Range.Text时,不到1秒)。
问题:有没有办法让Range.Copy / Range.Paste更快?我只需要找到一段特定的文本,并将所有表格,格式等复制到另一个文件中。
答案 0 :(得分:2)
如果您要复制带有格式的文字,可以使用Range
的{{1}}属性
targetRange.FormattedText = sourceRange.FormattedText;
避免使用Range.Copy()和Range.Paste(),因为此方法在内部使用剪贴板,这可能会导致安全问题,或者在某些情况下可能会提供不可预测的结果