Excel Pivot R1C1 - 内存过载

时间:2016-03-03 11:03:30

标签: excel vba excel-vba pivot

我正在使用以下代码通过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符号并以这种方式传递。

我该怎么做?如果做不到这一点,我该如何使这段代码工作呢?

编辑:最新的错误是数据透视表字段名称无效

1 个答案:

答案 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:=