2013-11-25 160 views
0

试图找出在特定时间启动excel宏的最佳方法。我发现了一些建议,但我仍然有很多关于这个想法的问题,希望你们可以提供一些解释。在特定时间运行VBA excel宏

我在做什么:我有活的excel工作簿连接到我的数据库。因此,在每个月的最后一天的下午11:30,我想进入几个excel工作簿(我为每个销售商提供一个工作簿),启用安全性并编辑并刷新连接,以便工作表中的所有信息都是最新。最后,我想然后将该文件的副本保存在当前文件夹内的子文件夹中。准时方法

运行:

下面是这个run on time method,我就发现ozgrid。我的问题是,我认为当时需要运行excel才能执行该方法?如果是的话,那么开放excel和刷新工作簿以保存的一种方式是什么?

在Windows任务计划程序运行ExcelWindows Task Scheduler

本质上讲,这方法是使用一个Excel控制器运行Excel中使用VBS ......似乎比上一次方法运行更有前途,但我不是很熟悉如何一个Excel控制器工作或VBS,所以任何帮助或想法在这一个将不胜感激。

任何输入,非常感谢。如果我的想法在左边的领域出路,你们能帮助我指出正确的方向吗?

感谢您提前提供的所有帮助!

+5

我已经介绍了Task Scheduler [HERE](http://stackoverflow.com/questions/10211250/excel-vba-email-does-not-send-when-computer-is-locked) –

+0

@SiddharthRout +1000先生,那真是太神奇了。非常感谢你! – Adjit

+0

@SiddharthRout只有一个简单的问题...你会建议使用vbscript打开所有的工作簿吗?或者是否可以打开excel并启动一个宏来打开 - 刷新 - 逐一保存工作簿? – Adjit

回答

0

解决问题。使用普通的Excel查询工具创建工作簿,并在打开工作簿时载入查询的结果集(您不指定版本,但请参阅针对Excel 2013的Refresh an external data connection)。

然后,可以在数据库中创建一个包含所需结果的视图,或者将视图的结果实现为临时表,然后由工作簿读取该临时表。

用户随后可以在需要数据时打开工作簿,并且当前结果将可用。查询的参数化版本然后可以访问历史表到较旧时期。

这样,所有数据只在需要时才准备好,并且始终可用,而且没有调度复杂性。