我有一个工作簿,有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
先谢谢你的好心解答
最快的应该是按名称刷新那个特定的查询。
ThisWorkbook.Connections("YourOLEDBconnection").OLEDBConnection.refresh
这将是一个较小的调用堆栈,但没有什么明显的时间差异。它也只关注连接打开、刷新、关闭的路径。
像这样的。
ThisWorkbook.Worksheets("SheetName").ListObjects("query table name").QueryTable.refresh BackgroundQuery:=False
我认为会有一个较长的调用堆栈 在顶部显示的连接刷新中进行额外的调用。你可能会产生少量的开销,以及与表本身有关的开销(任何格式化的重新绘制等)。
你可以对各种方法进行计时,寻找最佳的中值刷新时间,并采取该方法。