我当前正在编写一个宏,以将多个不连续的范围复制并粘贴到Word文档中。几乎每次都可以完美运行。问题是,有时使用宏时会出现运行时错误4605。我已经尝试了一些方法:找到的DoEvents, "application.cutcopymode = false", EmptyClipboard()
函数,用Application.Wait (Now + TimeValue("0:00:01"))
添加了等待时间
没什么真正起作用的,其中一些比其他修复的更多,例如,“ application.cutcopymode = false”使该错误很少发生,但仍然发生。
现在输入代码:
For intCounter = 2 To 27
If intCounter > 2 Then wdApp.Selection.InsertBreak Type:=wdPageBreak
'------------------------------------------------------------
Set rng1 = Worksheets(intCounter).Range("E2:G3")
rng1.Copy
On Error Resume Next
wdApp.Selection.PasteExcelTable False, True, False
'------------------------------------------------------------
Set rng2 = Worksheets(intCounter).Range("E6:G7")
rng2.Copy
On Error Resume Next
wdApp.Selection.PasteExcelTable False, True, False
Next intCounter
我知道在每个范围声明之后使用copy命令是很丑陋的,但是如果我不这样做,将会出现一个错误,那就是它们必须是连续的。
有没有办法解决这个错误,还是我必须放弃这个想法,做一个临时的excel工作表,然后从那里复制它?
谢谢 硕士