【发布时间】:2012-05-23 08:22:17
【问题描述】:
我使用任务计划程序通过 Excel 自动执行各种夜间任务。通常,该任务会打开一个新的 Excel 实例,然后打开一个指定的文件,该文件执行一些操作并关闭自身(和 Excel)。
现在我有一个需要加载项的任务,并且使用加载项需要单独的身份验证。无法传递我的凭据 - 我必须在加载项加载时手动进行身份验证。因为老式方式总是启动一个新的(未经身份验证的)实例,所以我无法弄清楚需要加载项的任务如何完全自动化。
一种解决方法是在我离开之前打开一个 Excel 实例,对加载项进行身份验证,然后让该实例保持打开状态。然后,理论上我可以安排在该实例中打开某个文件(而不是如上所述启动一个新实例来打开该文件)并执行任何需要加载项的任务。
是否可以通过以某种方式直接定义任务或在我可以按计划运行的 .bat 文件中执行此操作?
【问题讨论】:
-
use of the add-in requires separate authentication.如何验证加载项? -
当 Excel 启动时,加载项会加载。它显示一个模式窗口,您可以在其中输入用户名/密码。您可以关闭该窗口,但如果您尝试使用任何加载项功能,该窗口会再次弹出。通过身份验证后,您可以在该 Excel 实例中打开的任何文件中随意使用加载项。
-
好的,现在我们有 2 个选项 1) 简单方法和 2) 困难方法。简单的方法是你建议的。
open an instance of Excel before I leave, authenticate for the add-in, and leave that instance open困难的方法是使用 FindWindow/SendMessage API 并自动执行身份验证过程。 -
谢谢@Siddharth。据我所知,Easy Way 行不通。任务计划程序通过使用文件名作为参数调用可执行文件来打开文件,这意味着如果您使用任务计划程序打开 Excel 文件,它将在新实例中打开。我对你提到的API不熟悉,但是,借助Google的力量,我希望尝试一下。感谢您的帮助!
-
啊!你不需要这样做。您可以调用现有的 Excel 实例,然后使用 VBScript 打开 Excel 文件 :) 请参阅此链接 stackoverflow.com/questions/10211250/… 而不是
CreateObject,您使用GetObject
标签: excel scheduled-tasks