Ich erstelle ein Pivot über VBA mit dem folgenden Code:
Dim Pivot30D As Worksheet
Set Pivot30D = Sheets.Add
Pivot30D.Name = "Pivot30D"
Dim Kelekt As Range
Set Kelekt = Range(Range("A2"), Range("A2").End(xlDown).End(xlToRight))
Dim KelektAddress As String
KelektAddress = Kelekt.Parent.Name & "!" & Kelekt.Address(True, True, xlR1C1)
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
KelektAddress, Version:=xlPivotTableVersion15). _
CreatePivotTable TableDestination:="Pivot30D!R1C1", TableName:="PivotTable1" _
, DefaultVersion:=xlPivotTableVersion15
Hier ist Kelekt der Bereich, in dem ich binErstellen des Pivot. Dies würde in der Theorie gut funktionieren, außer dass ich eine schnelle Speicherüberlastung bekomme. Zu wenig Speicher. Auf der anderen Seite kann ich diesen Pivot einfach erstellen, wenn ich "R2C1: R191995C24" (mit den Anführungszeichen) anstelle von Kelekt verwende. Alles, was ich (hoffentlich) dafür brauche, ist Kelekt in RC-Notation umzuwandeln und es so zu übergeben.
Wie mache ich das? Wenn ich das nicht schaffe, wie kann ich diesen Code anders machen?
Bearbeiten: Der letzte Fehler ist PivotTable Feldname ist nicht gültig
Antworten:
2 für die Antwort № 1Vorgeschlagene Änderungen:
Dim Kelekt As Range
Set Kelekt = Range(Range("A2"), Range("A2").End(xlDown).End(xlToRight))
dim KelektAddress as String
KelektAddress = Kelekt.Parent.Name & "!" & Kelekt.address(true, true, xlR1C1)
Und benutzen KelektAddress
Anstatt von Kelekt
im SourceData:=
Parameter.