大家好,德国人的问候!
经过一段时间的搜索,我的智慧结束了,我希望有人可以帮助我。
我尽可能简单明了地描述我的问题:
我正在构建一个MS Excel 2010工作簿,其中包含多个(90+)外部连接到SharePoint 2013列表&库。
这些连接是由SharePoint集成的“导出到Excel”功能(在List / Library-Ribbon中)创建的,然后连接文件将导出到另一个SP场。 (第一个“源”-SP-Farm来自客户,第二个是我们自己的内部网)
我必须每天通过自动宏刷新这些连接一次。
计时器作业将在晚上打开工作簿并执行“RefreshAllConnections”-macro, 这不仅仅是刷新(例如写下刷新日期和时间)。 因此,当发生这种情况时,没有用户在场。
这就是我的问题所在:
有时,其中一些连接无法刷新。 Excel显示警告说(翻译自德语):
“以下数据范围无法更新:owssvr(...) 你想继续更新吗? (确定)/(取消)
到目前为止我发现了什么:
1)问题始终是图书馆
2)相当随机的图书馆不会更新,何时
3)问题在一段时间后自行修复(这就是为什么我猜这与其他人使用/修改的库有关)
4)当库拒绝更新时,再次使用“导出到Excel”功能会在创建新工作表并且数据应填入
后再次出现错误现在有几点:
1)警报始终使用我已更改的“旧/原始”连接名称。
2)当我按下OK时,宏只会在下一行继续,不会抛出任何错误
3)如果我按下取消,则会出现错误1004(我至少可以捕获,这样就可以了)。
以下是问题:
由于这是在晚上自动发生的,因此没有用户坐在附近来回答这些警报。所以:
1)宏必须通过“取消”自动回复这些警报,如果它们弹出(我不知道该怎么做!)
2)我通过“Application.displayAlerts = false
禁用它们但是:这将使用默认答案自动回答它们,即“OK”。 然而,这并没有引发我可以捕获的错误,因此我的宏现在不会知道更新是否有效。
那是关于它的。对不起,很长的帖子和感谢阅读。
希望你们中有人有个主意。
编辑:
是否可能是由SharePoint生成的连接自动成为问题?
(怎么样)我可以自己建造它们吗?
答案 0 :(得分:3)
好。我自己解决了。
答案很简单:
我现在通过“ActiveSheet.ListObjects(1).QueryTable.Refresh”
刷新相应的QueryTable,而不是刷新Connection。如果Connection没有响应,则会抛出一个错误,我现在可以正常捕获。
呃,终于来了!