这是我想要达到的事件的连续性: 计划任务 - 每天在同一时间运行并启动VBScript VBScript启动Excel工作簿并运行宏。这是片段 -
Set xlApp = CreateObject ("Excel.Application")
xlApp.Visible = False
Set xlBook = xlApp.Workbooks.Open (xlFilePath,0,False)
xlApp.Run "Main"
现在问题是如果我手动运行任务,它运行正常。当我没有登录到服务器时运行计划任务时,它不会启动excel。当没有用户登录时,我需要在上面的代码中更改以启动excel?我已将Excel宏安全性设置为低。
Excel 2003和Windows Server2003 64
答案 0 :(得分:4)
看一下MS Knowledge Base - 据此,Office应用程序需要运行UI。
因此,尝试使用除系统用户之外的任何用户:
例如,由SYSTEM帐户下的任务计划程序启动的代码在与“服务器端”ASP代码或DCOM代码相同的环境中运行。因此,本文描述的许多问题都可能发生。
此外,尝试从Excel文件中的Workbook_Open事件而不是Main
调用xlApp.Run "Main"
...
答案 1 :(得分:1)
不确定它是否已经解决,但我遇到了问题并通过以下步骤解决了。
创建以下文件夹
(32位,总是)C:\ Windows \ System32 \ config \ systemprofile \ Desktop
(64位)上面的文件夹和C:\ Windows \ SysWOW64 \ config \ systemprofile \ Desktop
如果您使用系统帐户运行,这将解决此问题。
答案 2 :(得分:0)
您应该能够设置一个选项,以便在运行任务时使用用户名,并且无论用户是否登录,都可以运行任务。以下是Windows Server 2008中的一个示例: