Sheets(...) kannst Du füttern mit dem Tabellenamen(Datentyp=String) oder mit dem Index(Datentyp=Integer).
Die Array()-Funktion kann beides aufnehmen/zurückliefern.
Ob du es direkt an Sheets(...) übergibst oder in eine Variant-Variable spielt dabei keine Rolle.
So oder so hat die Array-Funktion() ein Array als Rückgabewert.
By the way:
Welchen Datentyp eine Variable oder ein Array zur Laufzeit hält, kannst Du über das lokalen Anzeigefenster beobachten, während die Prozedur noch im Stack liegt ... also entweder via Einzelschritten durchgehen und nach Wertzuweisung reinschauen bzw einen Haltepunkt setzen.
Zur veranschaulichung folgende Beispiele:
Option Explicit
Sub Test01()
Dim v As Variant
v = Array("Tabelle1", "Tabelle2", "Tabelle3")
Sheets(v).Select
'Hilfe: https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/array-function
'*** Hier Datentyp STRING.
End Sub
Sub Test02()
Dim v As Variant
v = Array(1, 2, 3)
Sheets(v).Select
'Hilfe: https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/array-function
'*** Hier Datentyp INTEGER
End Sub
Sub Test03()
Dim s(0 To 2) As String
s(0) = "Tabelle1"
s(1) = "Tabelle2"
s(2) = "Tabelle3"
Sheets(s()).Select
End Sub
Die Split()-Funktion liefert Dir ebenfalls ein Array. Hier ist aber von vornerein klar, dass der Datentyp String sein wird.
Split-Funktion (Visual Basic for Applications) | Microsoft Docs
Deshabl in Deinem Fall auch so nützlich.
|