将数据复制/粘贴到定时器上的其他现有工作簿

我目前有这个VBA –

Sub StartTimer() Application.OnTime Now + TimeValue("00:00:15"), "AutoCalc" End Sub Sub AutoCalc() Application.CalculateFull Sheets("Kine").Range("B603:E603").Copy _ Destination:=Workbooks("AutoImportAverages.xlsx").Worksheets("AvgKine").Range("B1:E1") Application.OnTime Now + TimeValue("00:00:15"), "AutoCalc" End Sub 

.OnTime命令在没有复制/粘贴部分的情况下工作完美,这非常棒。

这给了我一个将自动更新的SQL查询的值列表,以及每列值的底部的平均值。

我试图设置它,以便平均值将自动添加到Minitab中的列上,但我相信macros正在停止Minitab中的自动更新。

所以我的想法是将平均值复制粘贴到没有自己的macros的Excel工作簿中,然后将其链接到Minitab。

我是否在复制粘贴代码错误,或者有什么问题需要存储macros以及如何?

快速编辑 – 我应该添加,目前的代码给“运行时错误9,下标超出范围”,并突出显示复制/粘贴代码。

我find了解决scheme。

我的目的地工作簿是在一个单独的窗口中打开的,所以消息来源并不认为它是开放的。 一场噩梦!

有必要在Excel的同一个实例中打开这两个工作簿。

此外,我的原始粘贴代码只粘贴“#REF”。 我改变了 –

 Workbooks("AutoImportAverages.xlsx").Worksheets("AvgKine").Range("B1:E1").PasteSpecial xlValues 

效果更好。

还有一件事,如果有人可能会觉得有用。 源工作簿必须处于活动状态才能执行自动更新。

添加下面的线,虽然它仍然是一个正在进行的工作,

 ThisWorkbook.Activate