【发布时间】:2021-08-25 04:09:52
【问题描述】:
我正在使用 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。
我该如何翻译:
Set QT = querySheet.ListObjects.item(1).QueryTable
大致如下:
Set QT = querySheet.ListObjects.items.QueryTable("My Query Table")
【问题讨论】: