【问题标题】:Refresh a specific external data connection刷新特定的外部数据连接
【发布时间】:2019-12-19 00:27:43
【问题描述】:

我有一个 Excel 文件 (2007),它有 50 多个连接,大约需要 5 分钟才能刷新所有连接。

用户每天都会刷新工作簿。并非所有连接都准备好在早上刷新。根据服务器状态,有些准备好了,有些还没有。

我创建了一个显示估计刷新时间的表(我们称之为 ETR 表),刷新需要一秒钟。我希望用户在服务器中仍有待处理的工作时仅刷新此 ETR 表。一旦他们在 ETR 表中的所有连接上都有绿灯,他们就可以刷新所有。

问题是用户有权访问的主工作表受到保护,不能有任何外部连接(否则,表格不会刷新)。因此,我将 ETR 表放在一个隐藏但不受保护的工作表中,并使用公式在主工作表中显示值。由于他们不能直接访问 ETR 表,因此用户没有好的方法只刷新 ETR 表。

因此,我想制作一个命令按钮(或任何可以工作的按钮),用户可以在其中单击并刷新一个特定的表格。

我对 VBA 非常陌生,并且已经研究了几天,但我只能找到刷新数据透视表的代码,而不是外部数据连接。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    你可以这样使用:

    ThisWorkbook.Connections("server.amer.company.com_tabular Tabular Model").Refresh

    用你的连接名称代替字符串。

    如果您需要查找每个连接的名称,您可以这样循环:

    Sub loop_connections()
        i = 1
        For Each wb_connection In ThisWorkbook.Connections
            Debug.Print wb_connection
            Sheet1.Cells(i,1).Value = wb_connection
            i = i + 1
        Next
    
    End Sub
    

    或者,如果作为连接的一部分,您的工作簿中有一个表格,您可以像这样刷新它:

    Sheet1.ListObjects("Table_Name").TableObject.Refresh

    【讨论】:

    • 感谢您的评论。这正是我所需要的。
    【解决方案2】:

    我认为你可以使用

    Thisworkbook.Connections("ConnectionName").Refresh

    【讨论】:

    • 也感谢您的回答!祝你有美好的一天。
    猜你喜欢
    • 2013-12-05
    • 2015-06-19
    • 2016-01-11
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 2017-04-15
    相关资源
    最近更新 更多