Excel ODBC数据连接查询刷新每个查询所用的时间

我试图testing从Excel数据连接运行的查询的三个变体。

我有三个单独的数据连接和三个单独的选项卡,分别从每个连接获取数据。

连接string对于每个查询都是相同的,只有命令文本(Oracle SQL)是不同的。

Excel中有没有办法查看每个查询的执行时间?

我正在使用版本Excel 2016 MSO 16.0.4456.1003 64bit

也许这样(假设所有的连接都把他们的结果放在一个工作表中,而不是在一个数据透视表中):

 Sub TimeQueries() Dim oSh As Worksheet Dim oCn As WorkbookConnection Dim dTime As Double For Each oCn In ThisWorkbook.Connections dTime = Timer oCn.Ranges(1).ListObject.QueryTable.Refresh False Debug.Print Timer - dTime, oCn.Name, oCn.Ranges(1).Address(external:=True) Next End Sub 

运行这个:

  1. Alt + F11进入VBA编辑器。
  2. 从菜单:插入模块。
  3. 将代码粘贴到窗口中。
  4. closuresVBA编辑器。
  5. Alt + F8提出macros的列表。 select新的,然后点击运行。
  6. Alt + F11再次到VBA编辑器。
  7. Ctr l + G打开结果的即时窗格。

如果您想要将代码写入单元格,请使用以下版本:

 Sub TimeQueries() Dim oSh As Worksheet Dim oCn As WorkbookConnection Dim dTime As Double Dim lRow As Long Set oSh = Worksheets("Sheet4") 'Change to your sheet name! oSh.Cells(1,1).Value = "Name of Connection" oSh.Cells(1,2).Value = "Location" oSh.Cells(1,1).Value = "Refresh time (s)" For Each oCn In ThisWorkbook.Connections lRow = lRow + 1 dTime = Timer oCn.Ranges(1).ListObject.QueryTable.Refresh False oSh.Cells(lRow,3).Value = Timer - dTime oSh.Cells(lRow,1).Value = oCn.Name oSh.Cells(lRow,2).Value = oCn.Ranges(1).Address(external:=True) Next End Sub