【发布时间】:2013-10-03 21:56:52
【问题描述】:
我正在尝试创建一个 VBScript,它将剪贴板中的一些文本插入到现有(和加载的)Word 文档中。我尝试了许多方法都没有成功(包括 Selection.Paste),但 Word(2013)不会粘贴。在尝试诊断问题的同时,我已经着手编写这个最小的脚本。
Set objWord = GetObject(, "Word.Application")
objWord.Application.Activate
Dim objShell
Set objShell = CreateObject("WScript.Shell")
objShell.SendKeys "Arggh 1"
objShell.SendKeys "^V"
objShell.SendKeys "Arggh 2"
如果我在剪贴板上放置一些文本(我已经开始使用基本的无格式文本,我最初是从 MathML 开始的,但那是另一回事),上面的脚本会生成
Arggh 1Arggh 2
将文本留在剪贴板上。如果 I 然后按 Ctrl+V,剪贴板文本将按预期粘贴。
我觉得我错过了一些明显的东西。欢迎任何帮助。
【问题讨论】:
-
你能显示你的非工作非sendkeys代码吗?
-
说实话,我已经尝试了几十种组合——我知道有些是错误的,有些应该是正确的。我最初去 SendKeys 是为了得到一个可行的基线——但那也没有!我尝试了 objWord.Paste objWord.ActiveDocument.Paste objWord.ActiveDocument.Selection.Paste objWord.Selection.Paste 和一大堆 PasteSpecials。在没有任何效果之后,我尝试了(不太理想的)SendKeys 方法。
-
objWord.Selection.Paste为我工作。 -
嗯。它也对我有用。请参阅下面的答案。
-
这个问题现在已经解决了。一旦 StackOverflow 允许我,我会尽快正确发布答案,但总结一下。 1. objWord.Selection.Paste 因我们正在开发的软件中的一个奇怪的时间问题而失败。实际上,脚本试图粘贴剪贴板不知道的内容。我们还没有解决这个问题,但我们现在理解它并且可以解决它。 2. Sendkeys 仍然失败,但我不知道为什么。由于问题已得到有效解决,我们不会对此进行处理。谢谢大家。