这与this question有关。请注意,接受的答案不回答提出的问题,因此我创建了一个新问题。
我有一个Windows服务,它将打开一个Excel文档,它有一个宏,它应该在打开时自动运行。我这样做是通过创建一个新的Process
。当我运行我的服务时,我将其作为另一个帐户登录(通过服务管理器中的Properties -> Log On -> Log on as [some other account]
)。
问题是宏没有运行。当我通过任务管理器检查活动进程时,我看到EXCEL.EXE
存在,以other account
名称运行。
所以我相信该服务正在Excel中正确打开文档,但宏没有运行。但是在另一个帖子中,人们似乎说通过服务打开MS Office文档是不可能的?我试图了解当我的服务尝试打开文档时发生了什么,以及如何让宏运行。任何意见或澄清将不胜感激。
答案 0 :(得分:0)
我遇到了与您所描述的问题相同的问题,excel实例挂起并且宏无法运行。 我终于发现这是一个权限问题。配置DCOM后,它就可以工作!
- 开始-> dcomcnfg.exe(可能会提示您输入管理员凭据)->控制台根目录->组件服务->我的电脑-> DCOM配置
- 单击“ Microsoft Excel应用程序”。右键单击->属性。
- 选择“身份”标签。选择安全性选项卡。 确保您的服务登录用户帐户已添加到此页面上的每个自定义设置中。 (警告:即使已添加管理员组并且用户帐户是管理员组成员,您可能仍需要特别添加用户,可能是由于Windows UAC的控制。)
- 选择“身份”标签。选择“身份”选项卡。 选择“启动用户”。 <-注意必须是这样,如果您选择“交互式用户”并且没有人登录该服务器计算机,则宏将不会运行。