Excel工作簿对于VBA宏太大吗?

时间:2018-10-30 18:44:12

标签: excel vba

我正在使用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 

1 个答案:

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