【问题标题】:Why Won't VBScript Paste? Word 2013为什么 VBScript 不能粘贴?词 2013
【发布时间】: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 仍然失败,但我不知道为什么。由于问题已得到有效解决,我们不会对此进行处理。谢谢大家。

标签: vba vbscript ms-word


【解决方案1】:

我之前也遇到过类似的问题(我需要 Ctrl-C),但这应该对你有用:

objShell.SendKeys "^{V}"

【讨论】:

  • 不幸的是,它在这里不起作用。我真的很难理解为什么这么简单的事情不起作用。我可能不得不尝试查找旧版本的 Word 以消除一些奇怪的 Word 问题。感谢您的反馈 - 它至少给了我一些短期的希望!
【解决方案2】:

当您有其他编程工具时,避免不安全的按键模拟:

Set objWord = GetObject(, "Word.Application")
objWord.Selection.TypeText "Arggh 1"
objWord.Selection.Paste
objWord.Selection.TypeText "Arggh 2"

另请注意 objWord.ApplicationobjWord 相同。

【讨论】:

  • 感谢您的反馈。在其他一切都失败后,不安全的击键选项是最后的手段。我一直在寻找(结果不成功)某种基础摇滚可以工作。现在这个问题得到了有效解决。一旦 StackOverflow 允许我(显然必须再等两个小时),我就会发布解决方案
  • @PaulHooper 我会期待这样的答案...当您提问时,您应该得到回答,而不是回答自己...
【解决方案3】:

好的。这部分解决了。

  1. 最初的问题 - objWord.Selection.Paste 不工作 - 最终成为剪贴板和创建 VBS 脚本的软件之间奇怪的时间交互。基本上,脚本试图在剪贴板知道数据之前进行粘贴。一旦我解决了时间问题,objWord.Selection.Paste 就会按预期工作。我们还没有解决这个问题,但至少我们现在知道发生了什么并且可以解决它。从纯粹务实的角度来看,上面提出的问题已经不重要了。

  2. SendKeys 粘贴仍然无法正常工作,我不知道为什么。我不会再花时间在这上面了,因为我现在遇到的问题已经发生了变化。

这是为诊断目的而试图简化事情实际上使事情变得更加困难的罕见时期之一。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多