我正在使用以下代码通过VBA创建一个Pivot:
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
在这里,Kelekt是我创建Pivot的范围。这在理论上可以正常工作,除非我得到快速的内存过载。内存不足。另一方面,如果我使用" R2C1:R191995C24"我可以创建这个数据库。 (用引号)而不是Kelekt。我需要(希望)完成这项工作就是将Kelekt转换为RC符号并以这种方式传递。
我该怎么做?如果做不到这一点,我该如何使这段代码工作呢?
编辑:最新的错误是数据透视表字段名称无效
答案 0 :(得分:2)
建议的更改:
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)
在KelektAddress
参数中使用Kelekt
代替SourceData:=
。