我正在使用 VBA 开发一个 MS Excel 2013 工具,其中涉及到 QueryTables 的使用。
一个不便之处是在 Excel 工作表中访问现有的QueryTable。目前,我能找到访问查询表的唯一方法是通过整数索引。我想出了以下代码来快速验证概念:
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。
我怎么翻译:
Set QT = querySheet.ListObjects.item(1).QueryTable
类似于以下内容:
Set QT = querySheet.ListObjects.items.QueryTable("My Query Table")