从计划任务计划时,外部数据不会在Excel中加载

时间:2017-05-30 12:37:24

标签: excel vbscript scheduled-tasks

问题是我创建了一个脚本,打开并刷新我的Excel中的数据。 数据是来自PHD服务器的外部数据我通过安装在excel上的插件获取此数据。 一切正常,直到我尝试使用任务调度程序安排脚本。当我将其安排为" 仅在用户登录时运行"它工作得很好。但当我尝试将其安排为" 运行用户是否已登录"它不会更新数据。 (它确实打开了excel并保存了它,但数据没有变化)

它设置在充当桌面的VM上,即使我已登录,也需要进行更新。

脚本的代码:(当我手动启动时,它可以正常工作)

Dim oExcel
Set oExcel = CreateObject("Excel.Application") 'launch excel.
oExcel.Visible = True ' makes the aplication visible (if not set to true the  data won't be updated) 
oExcel.DisplayAlerts = False' disables all excel allerts.
oExcel.AskToUpdateLinks = False 'now excel will not ask you to update links.
oExcel.AlertBeforeOverwriting = False 'excel will not display an alert before overwriting data in a cell.

插件更新数据的代码

Dim addIn 
addIn = COMAddIn
Dim automationObject 
automationObject =  Object
Set addIn = oExcel.COMAddIns("ExcelCompanion")
Set automationObject = addIn.Object
automationObject.UNIF_workbook_refresh

保存和关闭excel的代码

oWorkbook.RefreshAll 'refreshes the workbook
oWorkbook.Save 'saves the updated workoob
oWorkbook.Final = True 'makes the file read-only
oExcel.Quit 'exits excel
Set oWorkbook = Nothing ' destroy the object (minimises damage if the object goes out of scope)
Set oExcel = Nothing    ' destroy the object (minimises damage if the object goes out of scope)

这3个代码块构成了脚本。

1 个答案:

答案 0 :(得分:0)

亨基!

你有哪个版本的Windows?一周前我遇到了同样的问题,我遇到了一个非常奇怪的解决方案...... :)

尝试将文件夹添加到C:\ Windows \ SysWOW64 \ config \ systemprofile,简称“桌面”...如果运行32位版本的Windows,请执行相同的操作,但路径必须包含system32而不是Syswow64资料... “运行用户是否登录”现在将完成工作...如果你的脚本中有一个日志记录功能,你会看到脚本在Excel命令的某处停止...我不知道为什么会这样,它只是......