这是我想要实现的事件的连续性:计划任务 - 每天在同一时间运行并启动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
3 回答
看一下MS Knowledge Base - 据此,Office应用程序需要运行UI .
因此,尝试使用除系统用户之外的任何用户:
另外,尝试从Excel文件中的Workbook_Open事件调用
Main
而不是xlApp.Run "Main"
...不确定它是否已经解决,但我遇到了问题并通过以下步骤解决了 .
创建以下文件夹
(32位,总是)C:\ Windows \ System32 \ config \ systemprofile \ Desktop
(64位)上面的文件夹和C:\ Windows \ SysWOW64 \ config \ systemprofile \ Desktop
如果您使用系统帐户运行,这将解决此问题 .
您应该能够在运行任务时设置选项以使用用户名,并且无论用户是否登录,都可以运行任务 . 以下是Windows Server 2008的一个示例: