0
我想要测试从Excel数据连接运行的查询的三种变体。Excel ODBC数据连接查询刷新每个查询所花费的时间
我有三个单独的数据连接和三个单独的选项卡,分别从每个连接获取数据。
连接字符串对于每个查询都是相同的,只有命令文本(Oracle SQL)不同。
Excel中有没有方法查看每个查询的执行时间?
我特别使用版本Excel 2016 MSO 16.0.4456.1003 64bit
我想要测试从Excel数据连接运行的查询的三种变体。Excel ODBC数据连接查询刷新每个查询所花费的时间
我有三个单独的数据连接和三个单独的选项卡,分别从每个连接获取数据。
连接字符串对于每个查询都是相同的,只有命令文本(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
要运行此:
如果你想要的代码写入到一个单元格,使用这个版本:
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
他们做了一切发生在一个工作表中,将我添加为一个按钮,我怎么能得到这个输出结果? – Matt
1. Alt + F11转到VBA编辑器。 2.从菜单:插入模块。 3.将代码粘贴到窗口中。 4.关闭VBA编辑器。 5. Alt + F8显示宏的列表。选择新的,然后点击运行。 6.再次向VBE Alt + F11。 7. Control + G用结果打开直接窗格。 8.想要保持宏观?将文件另存为xlsm文件。 – jkpieterse
优秀!完美的作品! – Matt