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,

如果连接没有响应,则会引发错误,现在可以正确捕获。

呃,终于!