我希望能够安排一个 Excel 宏 (VBA) 在半夜(文件准备好后)运行以创建自定义工作簿(多个工作表、数据透视表、图表、过滤器、大纲、自定义格式, ETC。)。目前,宏在第二天手动启动。此外,它需要在服务器上无人看管地运行(笔记本电脑晚上回家!)。有人成功地做这样的事情吗?请不要使用 Unix 端的 hack(例如 Perl 模块)——需要完全访问 VBA 功能,包括数据库功能。谢谢!
问问题
557 次
2 回答
0
如果您可以让 Excel 一直在服务器上运行,则可以使用 Application.OnTime 来安排特定宏的下一次运行(一旦运行,在宏代码中重新安排另一个)。当我在银行工作时,我们一直用它来运行夜间工作。
如果您不能让 Excel 继续运行,我不得不说您可能正处于痛苦的世界中。可以使用 AT 作业(计划任务)启动 Excel,但您可能很难让它在正确的用户权限下运行,如果您使用任何插件,您将遇到常规灾难,它们无法加载并阻止 Excel 启动. 归根结底,Excel 并不是真的要在服务器上运行(它实际上违反了使用条款),即使你得到它,启动/运行/停止它也不会是一个可靠的系统去工作。
于 2011-01-18T00:02:10.033 回答
0
那么你有一些选择。
首先,所有的 Excel 都必须安装在服务器上。然后你创建一个调度任务来调用一个程序。
在这种情况下,您可以编写例如 vbscript 或 .NET 程序来调用应用程序、加载文档并启动其内容(您的 VBA)。那应该工作。或者,您将 VBA 代码移动到一个程序并使用您的代码定位 Excel,但需要做更多的工作。
如果您使用 .NET 执行此操作,您将获得最大的成功。例如,您可以为成功运行添加事件日志等。
于 2011-01-17T08:26:42.250 回答