2015-10-06 95 views
0

我现在有这个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,下标超出范围”,并突出显示复制/粘贴代码。

+0

你需要有其他的Excel文件打开这个工作,检查[如何将数据从另一个工作簿复制(EXCEL )?](http://stackoverflow.com/questions/482717/how-to-copy-data-from-another-workbook-excel)为同样的问题,和一个解决方案。 – agold

+0

我在您发布的帖子中探索答案,但它似乎并不是同一个问题。这两个Excel文件保持打开。我已经尝试在新的工作簿中将单元设置为外部参考,但我认为由于通过宏更新了值,所以存在问题。这就是为什么我试图找出复制方法,只是不知道为什么它不会工作。 – Jamsandwich

+0

目标工作簿的文件格式是否重要? – Jamsandwich

回答

2

我找到了解决方案。

我的目标工作簿是在单独的窗口中打开的,所以源代码并不认为它是开放的。噩梦的一点!

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

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

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

工作得好多了。

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

添加以下线整理出来的大部分问题,虽然它仍在进展中的工作 -

ThisWorkbook.Activate 
相关问题