我目前有这个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,下标超出范围”并突出显示复制/粘贴代码。
答案 0 :(得分:3)
我找到了解决方案。
我的目标工作簿在一个单独的窗口中打开,因此源代码未将其识别为已打开。有点噩梦!
必须在同一个Excel实例中打开这两个工作簿。
此外,我原来的粘贴代码只粘贴了“#REF”。我把它改为 -
Workbooks("AutoImportAverages.xlsx").Worksheets("AvgKine").Range("B1:E1").PasteSpecial xlValues
效果更好。
还有一件事,万一有人觉得它有用。源工作簿必须处于活动状态才能执行自动更新。
添加以下行解决了大多数问题,尽管它仍在进行中 -
ThisWorkbook.Activate