Excel VBA:捕获不会刷新的外部数据连接?
大家好,来自德国的问候!
经过相当长的一段时间的搜寻后,我的智慧已经结束了,希望有人能够帮助我。
我试图尽可能清楚和简要地描述我的问题:
我正在构buildMS Excel 2010工作簿,其中包含几个(90多个)SharePoint 2013列表和库的外部连接。
这些连接是由SharePoint集成的“导出到Excel”function(在列表/库 – function区中)创build的,然后将连接文件导出到另一个SP场。 (第一个“来源”-SP-Farm来自客户,第二个来自我们自己的内联网)
我必须通过一个自动化的macros来每天刷新一次这些连接。
计时器工作将在晚上打开工作簿并执行“RefreshAllConnections”macros,这不仅仅是刷新(比如写刷新date和时间)。 所以在这种情况下没有用户在场。
这是我的问题所在:
有时这些连接有时不能刷新。 Excel显示警报(从德语翻译):
“以下数据范围无法更新:owssvr(…)是否要继续更新?(OK)/(取消)
我到目前为止发现的:
1)问题始终是图书馆
2)Library不会更新,什么时候更新
3)这个问题在一段时间之后会自行修正(这就是为什么我猜这跟图书馆被其他人使用/修改有关)
4)图书馆拒绝更新时,再次使用“导出到Excel”function会在创build新工作表时提示错误,并且应该填写数据
现在这里是几率:
1)警报总是使用已经改变的“旧/原”连接名称。
2)当我按下OK时,macros在下一行继续,没有任何错误
3)如果我按取消错误1004发生(我至less可以赶上,所以这将是好的)。
这里是probs:
由于这是夜间自动发生的,所以没有用户坐在附近来回答这些警报。 所以:
1)macros必须自动回答这些警告与“取消”,如果他们popup(我不知道该怎么做!)
2)我通过“Application.displayAlerts = false”来禁用它们
但是:这会自动回答他们的默认答案,这是“OK”。 然而,这不是抛出一个错误,我可以赶上,所以我的macros不会现在是否更新acutally工作与否。
那就是这个。 对不起,长的职位,感谢阅读。
希望你们有一个想法。
编辑:
难道是由SharePoint自动生成的连接是问题吗?
(如何)我可以自己build立它们?
好。 我自己解决了。
答案很简单:
我不刷新连接,而是通过“ActiveSheet.ListObjects(1).QueryTable.Refresh”刷新相应的QueryTable,
如果连接没有响应,则会引发错误,现在可以正确捕获。
呃,终于!