我正在尝试测试从Excel数据连接运行的查询的三种变体。
我有三个单独的数据连接和三个单独的选项卡,它们分别从每个连接获取数据。
每个查询的连接字符串相同,只有命令文本(Oracle SQL)不同。
Excel中是否可以查看每个查询的执行时间?
我专门使用版本 Excel 2016 MSO 16.0.4456.1003 64bit
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
要运行此命令:
Alt
F11
F8
Ctr
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