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

时间:2015-10-06 12:03:44

标签: excel excel-vba minitab vba

我目前有这个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中的列上,但我相信Macro正在停止Minitab中的自动更新。

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

我是否将Copy-Paste代码设置错误,或者是否存在需要存储宏的位置以及如何存在问题?

快速编辑 - 我应该补充说当前代码提供“运行时错误9,下标超出范围”并突出显示复制/粘贴代码。

1 个答案:

答案 0 :(得分:3)

我找到了解决方案。

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

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

此外,我原来的粘贴代码只粘贴了“#REF”。我把它改为 -

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

效果更好。

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

添加以下行解决了大多数问题,尽管它仍在进行中 -

ThisWorkbook.Activate