从windows服务中运行Excel宏

本文关键字:Excel 运行 windows 服务 | 更新日期: 2023-09-27 18:15:10

这与这个问题有关。请注意,接受的答案不回答所提出的问题,因此我创建了一个新问题。

我有一个windows服务,将打开一个Excel文档,其中有一个宏,应该自动运行时,它被打开。我通过创建一个新的Process来实现。当我运行我的服务时,我让它作为另一个帐户登录来执行此操作(通过服务管理器中的Properties -> Log On -> Log on as [some other account])。

问题是宏没有运行。当我通过任务管理器检查活动进程时,我看到EXCEL.EXE在那里,以other account的名称运行。

所以我相信服务在Excel中正确打开文档,但宏没有运行。然而,在另一个线程中,人们似乎说,通过服务打开MS Office文档是不可能的。我试图了解当我的服务试图打开文档时发生了什么,以及如何使宏运行。如有任何意见或澄清,我们将不胜感激。

从windows服务中运行Excel宏

我遇到了与您所描述的相同的问题,excel实例挂起,宏不运行。我终于发现这是许可的问题。配置DCOM后,它工作!

  1. 开始→Dcomcnfg.exe(可能会提示您输入管理员凭据)->控制台Root ->组件服务->我的电脑->DCOM配置
  2. 点击"Microsoft Excel应用程序"。右击->属性。
  3. 选择"身份"页签。选择"安全"选项卡。确保您的服务登录的用户帐户已添加到此页面上的每个自定义中。(警告:即使已经添加了admin组,并且用户帐户是admin组成员,您仍然需要特别添加用户,可能是因为windows UAC的控制)
  4. 选择"身份"页签。选择"身份"选项卡。选择"启动用户"。<-如果您选择了"交互式用户"如果没有人登录该服务器,宏将无法运行。