Hi,
das ist generell bei allen Objekten so (z.B. auch bei Shapes). Wenn du bereits ein Objekt hast, das diesen Namen trägt, dann kannst du kein zweites mit dem selben Namen hinzufügen. Irgendwie logisch, oder? Wozu brauchst du denn diesen komischen Namen? Doch bestimmt nur um damit weiter zu arbeiten. Hier mal 3 Lösungsvorschläge:
With ActiveWorkbook.Queries.Add
Debug.Print .Name
End With
oder
Dim qry As WorkbookQuery
Set qry = ActiveWorkbook.Queries.Add
Debug.Print qry.Name
oder
ActiveWorkbook.Queries.Add
Debug.Print ActiveWorkbook.Queries(ActiveWorkbook.Queries.Count).Name
Merke. Die Add-Methode ist bei den allermeisten Objekten eine Function die das entsprechende Objekt nach der Erstellung zurückgibt. So auch bei den Queries. Die erste Variante nutzt diese Function in einem With Block ohne zusätzliche Variablen. Wenn du später im Code nochmal drauf zugreifen willst, nimm die zweite Variante, die das erstellte Objekt in eine Variable schreibt. Bei der dritten Variante wird die Add-Methode ohne Rückgabe ausgeführt. In dem Fall kannst du nur über die Count-Methode auf das zuletzt erstellte Objekt zugreifen.
Natürlich kannst du auch z.B. Debug.Print ActiveWorkbook.Queries(2).Name machen, wenn du sicher bist, dass du mindestens 2 Queris in deiner Arbeitsmappe hast.
Gruß Mr. K.
|