VisualBasic Variable in Array einbinden

Schwenni

Ensign
Registriert
Okt. 2006
Beiträge
159
Hallo,

ich versuche in Excel diverse Datenschnitte per Makro (Klick auf Button) einstellen zu lasssen.

Der Code zum einstellen eines Datenschnitts lautet so:

Code:
ActiveWorkbook.SlicerCaches("Datenschnitt_1"). _
        VisibleSlicerItemsList = Array("[tabelle1].[ds_filter].&[2017 - 02]")

Dieser Code stellt beim Datenschnitt den Filter "2017 - 02"ein.

Da die Zeiträume aber sich von Woche zu Woche verschieben muss ich mir den String für das Array vorher zusammenbauen.
Leider bekomme ich dann diese Variable nicht in das Array.

Bsp. mit fertig zusammengesetzten String (welcher dem oben genannten Code entspricht)

Code:
Dim zk as String

zk = """[tabelle1].[ds_filter].&[2017 - 02]"""

ActiveWorkbook.SlicerCaches("Datenschnitt_1"). _
        VisibleSlicerItemsList = Array( zk )

Er packt mir den Wert der Variable nicht dort "aus" wo ich ihn gerne hätte sondern bringt mir einen Fehler.
Laufzeitfehler 1004
Anwendungs- oder objektdefinierter Fehler


Wie ist der Trick dort nen zusammengebauten String unterzubringen ???

mfg
Sven
 
blöde frage: Warum """ """? Hast du mal:
Code:
zk = "[tabelle1].[ds_filter].&[2017 - 02]"
getestet?
 
Code:
zk = """[tabelle1].[ds_filter].&[2017 - 02]"""

gibt dir in der msgbox folgendes aus:

Code:
"[tabelle1].[ds_filter].&[2017 - 02]"

Die ersten Anführungszeichen und die letzten sind für den String.
Die folgenden Zwei "" ergeben dann das eine " in der Ausgabe.

Habe auch schon probiert das zwischen die Anführungszeichen zu setzen und mit & zu verknüpfen.

Code:
VisibleSlicerItemsList = Array(" & zk & ")


bin jetzt durch herumprobieren auf folgendes gestoßen:

Code:
Dim zk(1) As String
zk(0) = "[tabelle1].[ds_filter].&[2017 - 01]"
zk(1) = "[tabelle1].[ds_filter].&[2017 - 02]"
 
ActiveWorkbook.SlicerCaches("Datenschnitt_1"). _
        VisibleSlicerItemsList = Array("" & zk(0) & "", "" & zk(1) & "")

So generiere ich halt die Werte in nem Array über ne Schleife und gebe Sie einzeln aus in der Slicer Array Liste.
Wenn wer was eleganteres hat immer her damit .
 
ja mir ist klar, was das """ macht.
Ich frage mich nur warum das explizit im String stehen muss?
Array() erwartet vermutlich einen String? Denn hier:
VisibleSlicerItemsList = Array("[tabelle1].[ds_filter].&[2017 - 02]")
übergibst du ja auch nichts anderes als einen ganz normalen String ohne "
 
Zurück
Oben