PivotCache.Create无法处理大范围

时间:2014-09-01 13:30:09

标签: excel excel-vba excel-2010 pivot-table vba

运行正常:

Dim pc As PivotCache
With tgtBook.Sheets("Data")
    Set pc = tgtBook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=Range("A1:B5"), Version:=Excel.xlPivotTableVersion14) ' Range("myMthdata"))
End With

抛出运行时错误'13'类型不匹配:

Dim pc As PivotCache
With tgtBook.Sheets("Data")
    Set pc = tgtBook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=Range("A1:B500000"), Version:=Excel.xlPivotTableVersion14) ' Range("myMthdata"))
End With

唯一的区别是SourceData中的行数。这是一个错误还是存在这种看似不一致的逻辑原因?


修改

在进一步调查中,似乎B65536会起作用,而更大的东西会发生错误。这是旧版Excel中的最大行数excel-2010。感觉像个臭虫。

有人知道解决方法吗?

1 个答案:

答案 0 :(得分:1)

根据我的经验,如果您使用R1C1样式引用而不是Range对象或A1样式字符串,它会更好用:

Dim pc As PivotCache
    Set pc = tgtBook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="Data!R1C1:R500000C2", Version:=Excel.xlPivotTableVersion14)