Copy/Paste 计时器上的其他现有工作簿的数据

Copy/Paste data to other existing workbook on timer

我目前有这个 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 命令在没有 Copy/Paste 部分的情况下工作得很好,这很棒。

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

我正在尝试进行设置,以便将平均值自动添加到 Minitab 中的列中,但我相信宏正在停止 Minitab 中的自动更新。

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

我是否输入了错误的复制粘贴代码,或者宏需要存储在哪里以及如何存储有问题?

快速编辑 - 我应该补充一点,当前代码给出 "Run-Time Error 9, Subscript out of range" 并突出显示 copy/paste 代码。

我找到了解决方案。

我的目标工作簿已在单独的 window 中打开,因此源未将其识别为打开的。有点噩梦!

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

另外,我原来的粘贴代码只粘贴了“#REF”。我已将其更改为 -

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

效果更好。

还有一件事,以防万一有人觉得它有用。源工作簿必须处于活动状态才能执行自动更新。

添加下行解决了大部分问题,尽管它仍在进行中 -

ThisWorkbook.Activate