2014-09-01 66 views
1

此运行正常:PivotCache.Create不能处理大范围

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

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

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

+1优秀的 - 什么是有效的一个错误的完美解决方法软件。 – whytheq 2014-09-01 13:40:16