用于刷新Excel数据连接的VBScript(Office 365出现问题)

时间:2018-01-29 21:26:54

标签: excel sharepoint vbscript

我有一个大型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

0 个答案:

没有答案