问题是我创建了一个脚本,打开并刷新我的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个代码块构成了脚本。
答案 0 :(得分:0)
亨基!
你有哪个版本的Windows?一周前我遇到了同样的问题,我遇到了一个非常奇怪的解决方案...... :)
尝试将文件夹添加到C:\ Windows \ SysWOW64 \ config \ systemprofile,简称“桌面”...如果运行32位版本的Windows,请执行相同的操作,但路径必须包含system32而不是Syswow64资料... “运行用户是否登录”现在将完成工作...如果你的脚本中有一个日志记录功能,你会看到脚本在Excel命令的某处停止...我不知道为什么会这样,它只是......