我有几个脚本,其中有一个部分是复制图表,并粘贴在一个地区为图片。当我看到这些脚本运行时没有任何错误,但是当它们自动运行时,使用Windows,那么每次都会因为粘贴属性错误而失败。我在任何地方阅读都是为了让它工作,我做了一些更改,比如发送“向上”和“向下”键来唤醒剪贴板,复制和粘贴而不选择,在循环中增加等待时间以确保信息进出剪贴板,但没有任何帮助。以前有人见过这样的错误并找到了解决办法吗?
谢谢。
发布于 2022-05-13 06:38:05
因为我还没有得到任何答案,所以我试过并尝试了几种方法来避免窗口被锁时的错误,我认为我有很好的答案和解决方案,所以我在这里发布它,所以如果其他人遇到同样的麻烦,他就不需要通过所有的测试。我看到的问题是,当您使用.Chart.CopyPicture时,当Windows被锁定时,很难在它之后得到粘贴,因为它使用的是Office剪贴板。在CopyPicture之后,您可以得到两个停止粘贴过程的错误,第一个错误与处理之间的复制/粘贴时间有关,第二个错误是在复制和粘贴之间不需要出现其他焦点。当遵循这2条规则时,错误就不会出现。这是我的最后代码:
application.SendKeys "{UP}"
application.SendKeys "{DOWN}"
Sheet_(4).ChartObjects("Diagram 1").Chart.CopyPicture
Time1 = Now
Time2 = Now + TimeValue("00:00:10")
Do Until Time1 >= Time2
DoEvents
Time1 = Now
Loop
ErrorPlace = "Paste_1"
On Error GoTo Handle_Wait
Paste_1:
Sheet_(3).Paste Destination:=Sheet_(3).Range("B6"), Link:=False
On Error GoTo Handle如您所见,我首先SendKey以确保被唤醒,然后复制为图片,等待10秒以确保图片已准备好使用,然后在有新等待循环的地方注册一个新的错误句柄,并粘贴图片。从来没有在复制和粘贴之间,我有任何选择或激活,以避免滑动焦点。这个解决方案已经用了好几天了,所以感觉很好。我希望这能对其他有这样问题的人有所帮助。谢谢。
https://stackoverflow.com/questions/72083718
复制相似问题