【问题标题】:VBA Word 2010 Paste Error / No Wait CommandVBA Word 2010 粘贴错误/无等待命令
【发布时间】:2013-08-29 17:01:07
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 检查this类似的问题和解决问题的答案...
  • 谢谢。不知道我怎么错过了那个。

标签: vba wait ms-word paste


【解决方案1】:

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

Dim tmpStart
tmpStart = Timer
Do
    DoEvents
Loop While (tmpStart + 1) > Timer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 2017-11-25
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多