使用VBA刷新单个查询的最佳选择

问题描述 投票:-1回答:1

我有一个工作簿,有4-6个查询,我只想用VBA刷新6个中的1个。我的问题是,我用的是下面最快的选项吗?

而且不对,我不想在Excel内使用刷新所有的刷新按钮,我需要在一个子中包含这个。

CODE。

    ThisWorkbook.Connections("Query - Raw").OLEDBConnection.refresh

    ' THESE ALSO WORK
    ' ActiveWorkbook.RefreshAll
    ' Selection.ListObject.QueryTable.refresh BackgroundQuery:=False

这些都不行。

    ActiveWorkbook.Connections("Raw").refresh
    ThisWorkbook.Connections("Raw").refresh

先谢谢你的好心解答

excel vba
1个回答
0
投票

最快的应该是按名称刷新那个特定的查询。

ThisWorkbook.Connections("YourOLEDBconnection").OLEDBConnection.refresh

这将是一个较小的调用堆栈,但没有什么明显的时间差异。它也只关注连接打开、刷新、关闭的路径。

像这样的。

ThisWorkbook.Worksheets("SheetName").ListObjects("query table name").QueryTable.refresh BackgroundQuery:=False 

我认为会有一个较长的调用堆栈 在顶部显示的连接刷新中进行额外的调用。你可能会产生少量的开销,以及与表本身有关的开销(任何格式化的重新绘制等)。

你可以对各种方法进行计时,寻找最佳的中值刷新时间,并采取该方法。

© www.soinside.com 2019 - 2024. All rights reserved.