Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 为什么赢了';VBT脚本粘贴?Word 2013_Vba_Vbscript_Ms Word - Fatal编程技术网

Vba 为什么赢了';VBT脚本粘贴?Word 2013

Vba 为什么赢了';VBT脚本粘贴?Word 2013,vba,vbscript,ms-word,Vba,Vbscript,Ms Word,我正在尝试创建一个VBScript,用于将剪贴板中的一些文本插入到现有(已加载)Word文档中。我尝试了很多方法都没有成功(包括Selection.Paste),但Word(2013)不会粘贴。在尝试诊断问题的同时,我已经开始使用这个最小的脚本 Set objWord = GetObject(, "Word.Application") objWord.Application.Activate Dim objShell Set objShell = CreateObject("WScript.Sh

我正在尝试创建一个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,剪贴板文本将按预期粘贴


我觉得我错过了一些明显的东西。欢迎提供任何帮助。

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


objShell.SendKeys“^{V}”

使用其他编程工具时,避免不安全的击键模拟:

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

另请注意
objWord.Application
与刚才的
objWord
相同。这部分得到了解决

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

  • SendKeys粘贴仍然不起作用,我不知道为什么。我不会再花更多的时间在这上面了,因为我的问题现在已经变了


  • 这是为诊断目的而尝试使事情变得更简单实际上使事情变得更困难的极少数情况之一。

    您能展示您的非工作非sendkeys代码吗?老实说,我已经尝试了几十种组合,有些我知道是错误的,有些应该是正确的。我最初去SendKeys是为了得到一些有用的东西的基线——但那也没有!我尝试了objWord.Paste objWord.ActiveDocument.Paste objWord.ActiveDocument.Selection.Paste objWord.Selection.Paste和一堆特殊的粘贴。在没有任何效果之后,我尝试了(不太理想的)SendKeys方法。
    objWord.Selection.Paste
    对我有效。对我来说也是如此。请参阅下面的答案。此问题现已解决。只要StackOverflow允许,我会尽快发布正确的答案,但只是总结一下。1.objWord.Selection.Paste由于我们正在使用的软件中出现奇怪的计时问题而失败。实际上,脚本试图粘贴剪贴板不知道的东西。我们还没有解决这个问题,但我们现在理解了它,并且可以着手解决它。2.Sendkeys仍然失败,但我不知道为什么。由于问题已得到有效解决,我们不会就此开展工作。谢谢大家。不幸的是,它在这里不起作用。我真的很难理解为什么这么简单的东西不起作用。我可能不得不设法找到旧版本的Word,以消除一些奇怪的Word问题。谢谢你的反馈——这至少给了我一些短期的希望!谢谢你的反馈。在其他一切都失败后,不安全的击键选项是最后的选择。我一直在寻找(事实证明是不成功的)某种基岩来进行工作。这一问题现已得到有效解决。只要StackOverflow让我(显然还要再等两个小时),我就会发布解决方案@PaulHooper我期待这样的答案。。。当你问,你应该得到回答,而不是回答自己。。。