【问题标题】:Open an Excel file in running instance of Excel with Task Scheduler使用任务计划程序在 Excel 的运行实例中打开 Excel 文件
【发布时间】: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


【解决方案1】:

我有一个非常相似的问题,想知道您是否已经通过 VBA(getobject()、sendmessage 方法等)解决了这个问题。 我为此创建了一个单独的问题,只是展示了我所做的事情。 Windows FindWindows and SendMessgae for Auto-authentication excel VBA 基本上我被困在如何将用户名和密码传递给加载项弹出窗口。

一百万次感谢:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-18
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 2022-10-13
    • 1970-01-01
    • 2020-06-17
    相关资源
    最近更新 更多