0

我有一个项目,它需要几个文档作为输入,对它们进行一些处理,最后创建几个新文档。我目前在将内容从一个 Word 文档粘贴到另一个文档时遇到问题。以下代码片段似乎相关:

Set refOrigin = FindReference(OriginDoc)
Set refDest = PasteDoc.Range(PasteDoc.Content.Start, PasteDoc.Content.End)
refDest.Collapse wdCollapseEnd
refOrigin.Copy
refDest.Paste

运行此代码时,我偶尔Command Failed会在代码的粘贴行收到运行时错误 4198 。但是,当我进入调试器时,我可以看到 refDest 和 refOrigin 都是有效范围。此外,当我逐行浏览代码时,它可以工作。但是,我可以看出,在它失败的情况下,它已经插入了一个嵌入的 Word 文档。

我已经对这些问题进行了一些研究,并且我相信存在某种类型的代码运行速度过快以使剪贴板有时跟上它的问题。这对我来说很有意义,因为当我从网络驱动器上的文档运行宏时,它运行顺利。

我以为我可以简单地添加一个等待命令Application.Wait,但事实证明 Word 2010 不支持此命令;它只在 Excel 中。

有没有人知道这个问题的根源,可能的解决方案,或者给 Word 2010 一个等待命令的任何方法?谢谢。

4

1 回答 1

1

为了完整起见,以下代码模仿了问题中的 Excel `Application.Wait' 方法。

Dim tmpStart
tmpStart = Timer
Do
    DoEvents
Loop While (tmpStart + 1) > Timer
于 2015-08-22T14:15:15.677 回答