Excel-VBA-verweisen zu QueryTable von Objekten durch name

Ich bin die Entwicklung einer MS-Excel-2013-tool mit VBA, die beinhaltet die Verwendung von Abfragetabellen. Man Unannehmlichkeiten, die ich erlebe, ist der Zugriff auf bestehenden von Abfragetabellen in einem Excel-Arbeitsblatt. Derzeit ist die einzige Methode, die ich finden kann, um den Zugriff auf eine Abfrage-Tabelle von integer Indizierung. Ich kam mit dem folgenden code für einen schnellen proof-of-concept

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

Funktioniert es, aber ich wirklich nicht wollen, es zu tun auf diese Weise. Das Endprodukt tool haben bis zu fünf verschiedene Abfragetabellen. Was ich will, ist zu verweisen auf eine Abfragetabelle (QueryTable) in Ihrem Namen.

Was schön wäre ist, wenn ich könnte, übersetzen Sie den code unten

Set QT = querySheet.ListObjects.item(1).QueryTable

Etwas entlang der Linien

Set QT = querySheet.ListObjects.items.QueryTable("My Query Table")

Irgendwelche Vorschläge würde sehr geschätzt.

InformationsquelleAutor Paul Renton | 2013-08-05

Schreibe einen Kommentar