我有一本包含 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
我认为会有更长的调用堆栈,对顶部显示的连接刷新进行额外的调用。您可能会产生与表本身相关的少量开销(任何重新绘制的格式等)。
您可以对各种方法进行计时,寻找最佳的中值刷新时间并采用该方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)