1

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

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

我是否输入了错误的复制粘贴代码,或者在需要存储宏的位置以及如何存储方面存在一些问题?

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

4

1 回答 1

3

我找到了解决方案。

我的目标工作簿在单独的窗口中打开,因此源无法识别它是打开的。有点噩梦!

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

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

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

效果更好。

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

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

ThisWorkbook.Activate
于 2015-10-07T08:44:24.873 回答