Excel 使用VBA刷新单个查询的最佳选项
我有一个带有4-6个查询的workboook,我只想用VBA刷新其中的1个。我的问题是,我是否使用下面最快的选项 不,我不想在Excel中使用“全部刷新/刷新”按钮,我需要将其包含在sub中 代码: 这些不起作用:Excel 使用VBA刷新单个查询的最佳选项,excel,vba,Excel,Vba,我有一个带有4-6个查询的workboook,我只想用VBA刷新其中的1个。我的问题是,我是否使用下面最快的选项 不,我不想在Excel中使用“全部刷新/刷新”按钮,我需要将其包含在sub中 代码: 这些不起作用: ActiveWorkbook.Connections("Raw").refresh ThisWorkbook.Connections("Raw").refresh 感谢您提前给出的友好回答。最快的方法应该是按名称刷新特定查询 ThisWorkbook.Connect
ActiveWorkbook.Connections("Raw").refresh
ThisWorkbook.Connections("Raw").refresh
感谢您提前给出的友好回答。最快的方法应该是按名称刷新特定查询
ThisWorkbook.Connections("YourOLEDBconnection").OLEDBConnection.refresh
这将是一个较小的调用堆栈,但不会有太大的时间差。它还只关注连接打开、刷新和关闭路径
比如:
ThisWorkbook.Worksheets("SheetName").ListObjects("query table name").QueryTable.refresh BackgroundQuery:=False
我认为会有更长的调用堆栈,对顶部显示的连接刷新进行额外调用。与表本身相关,您可能会产生少量开销(任何重新绘制的格式等)
您可以对各种方法计时,并寻找最佳中值刷新时间,然后采用该方法。与转到需要刷新的工作表,然后使用VBA代码Selection.ListObject.QueryTable.refresh BackgroundQuery:=False?不一样吗??我的意思是,刷新表将在后台刷新连接,所以只需刷新连接即可。我的意思是ThisWorkbook.Worksheets(“SheetName”).ListObjects(“查询表名称”).QueryTable.refresh BackgroundQuery:=False基本上与Selection.ListObject.QueryTable.refresh BackgroundQuery:=False相同?否。第二个会产生更多的i/o开销,因为您必须首先触摸工作表并选择目标。
ThisWorkbook.Worksheets("SheetName").ListObjects("query table name").QueryTable.refresh BackgroundQuery:=False