我正在使用32位Excel 2010,并且有一个120 MB的工作簿。我正在编程一些vba宏来驱动数据透视表,并且似乎遇到了一些与大小有关的问题。我想知道我目前的选择是什么,因为目前无法升级到64位版本。显然,还有其他一些我更喜欢的选项,但现阶段我的输出限于excel 2010。我可以利用一个单独的工作簿并以这种方式提取数据透视表,还是会遇到相同的问题。我也正在考虑利用Access来保存我的数据,并使用Excel作为前端来处理这种情况。哪个是最佳选择?
以下是创建数据透视表的基础知识:
Sub MakePivotTable()
Dim PT As PivotTable
Dim cacheOfpt As PivotCache
Dim PF As PivotField
Dim PI As PivotItem
On Error Resume Next
Sheets("Pivot").Select
ActiveSheet.PivotTables("Data_Pivot").TableRange2.Clear
Sheets("Data").Select
Set cacheOfpt = ActiveWorkbook.PivotCaches.Create(xldatabase, Range("A1:CC300000"))
Sheets("Pivot").Select
Set PT = activesheet.PivotTables.Add(cacheOfpt, Range("A1"), "Data_Pivot")
End Sub
答案 0 :(得分:2)
以下内容最终解决了我的问题。
Option Explicit
Sub CreatePivotTableAndPivotCache()
Dim pc As PivotCache
Dim pt As PivotTable
Set pc = ThisWorkbook.PivotCaches.Create( _
SourceType:=xlDatabase, _
SourceData:=Sheet1.Name & "!" & Sheet1.Range("A1").CurrentRegion.Address, _
Version:=xlPivotTableVersion14)
Debug.Print ThisWorkbook.PivotCaches.Count
Worksheets.Add
Range("A3").Select
Set pt = pc.CreatePivotTable( _
TableDestination:=ActiveCell, _
TableName:="DataPivot")
Debug.Print ThisWorkbook.PivotCaches.Count
Debug.Print pc.MemoryUsed, pc.RecordCount, pc.Version
End Sub