我有一个大型Excel文件,它使用PowerPivot连接到多个外部数据源。 Excel文件存储在SharePoint文件夹中。我希望能够在一夜之间自动刷新连接。为此,我使用Windows任务计划程序每天凌晨2点触发VBScript。
以前,我让脚本在工作簿中运行一个宏来刷新所有内容。这成功运行,直到我的组织最近更新到Microsoft Office 365 ProPlus。我现在正在努力使用SharePoint的新的只读默认设置。在更新之后,每当我从SharePoint打开Excel文件时,我都会看到一个黄色条形图,并且只读:我们从服务器以只读方式打开了这个工作簿。编辑工作簿"。手动处理文件时,必须先单击此文件才能保存更改。我试图研究这个程序化的解决方法,并找到了使用方法.LockServerFile的建议。
为简化故障排除,我尝试将整个操作移动到VBScript脚本中,而不是在工作簿中运行宏。我的代码如下。
当我观看过程时,黄色"只读"条形似乎在保存之前立即弹出。我可以在没有明显错误的情况下运行一次该过程,但如果我然后手动打开该文件,我就看不到“编辑工作簿”#34;的选项。如果我手动更改文件,保存,然后再次运行脚本,我会收到错误800A03EC。
似乎脚本无法正确地发布"发布"完成后锁定服务器文件。
有没有办法解决这个问题?
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("[[The Sharepoint Path]]")
objExcel.Application.DisplayAlerts = False
objExcel.Application.Visible = True
objExcel.ActiveWorkbook.LockServerFile
objExcel.ActiveWorkbook.EnableConnections
objExcel.ActiveWorkbook.Sheets(1).Range("P2").Value = Date
objExcel.ActiveWorkbook.RefreshAll
objExcel.ActiveWorkbook.Save
objExcel.ActiveWorkbook.Close false
objExcel.Application.Quit
set objworkbook = Nothing
set objExcel = Nothing
WScript.Quit