我正在使用VBA开发MS Excel 2013工具,其中涉及使用QueryTables。
一个不便之处是访问Excel工作表中 现有的 QueryTables。目前我只能通过整数索引来访问查询表。为了快速证明这一点,我想出了以下代码:
Sub RefreshDataQuery()
Dim querySheet As Worksheet
Dim interface As Worksheet
Set querySheet = Worksheets("QTable")
Set interface = Worksheets("Interface")
Dim sh As Worksheet
Dim QT As QueryTable
Dim startTime As Double
Dim endTime As Double
Set QT = querySheet.ListObjects.item(1).QueryTable
startTime = Timer
QT.Refresh
endTime = Timer - startTime
interface.Cells(1, 1).Value = "Elapsed time to run query"
interface.Cells(1, 2).Value = endTime
interface.Cells(1, 3).Value = "Seconds"
End Sub
这个方法能够实现,但我不想这样做。最终的工具可能会有最多五个不同的QueryTable,我想通过它们的名称来引用各自的QueryTable。
Set QT = querySheet.ListObjects.item(1).QueryTable
翻译为:
将其改为以下内容:Set QT = querySheet.ListObjects.items.QueryTable("My Query Table")