Excel工作簿对于VBA宏来说太大?
我正在使用32位Excel 2010,并且有一个大小为120 MB的工作簿。我正在编写一些vba宏来驱动透视表,似乎遇到了一些与大小相关的问题。我想知道我的一些选择是什么,因为现在升级到64位版本是不可能的。显然,我更喜欢其他选项,但在现阶段,我的输出仅限于excel 2010。我是否可以使用单独的工作簿并以这种方式提取数据透视?或者我是否会遇到相同的问题。我也在考虑使用Access来保存数据,并使用Excel作为前端。哪一个是最好的选择 以下是创建透视表的基本步骤:Excel工作簿对于VBA宏来说太大?,excel,vba,Excel,Vba,我正在使用32位Excel 2010,并且有一个大小为120 MB的工作簿。我正在编写一些vba宏来驱动透视表,似乎遇到了一些与大小相关的问题。我想知道我的一些选择是什么,因为现在升级到64位版本是不可能的。显然,我更喜欢其他选项,但在现阶段,我的输出仅限于excel 2010。我是否可以使用单独的工作簿并以这种方式提取数据透视?或者我是否会遇到相同的问题。我也在考虑使用Access来保存数据,并使用Excel作为前端。哪一个是最好的选择 以下是创建透视表的基本步骤: Sub MakePivot
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
下面的内容最终解决了我的问题
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
下面的内容最终解决了我的问题
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
什么是“与大小相关的问题”?系统资源。我已尝试删除格式以缩小大小。行数约为300k。当试图仅生成透视表本身时,表示excel无法完成该过程。请尝试选择较少的行。@Leigh.Granger关闭excel时,打开任务管理器,查看是否仍有excel.exe进程在运行。听起来Excel没有正确关闭(可能是在VBA的执行/测试过程中),而此Excel实例占用了过多的系统资源。Excel和VBA处理内容和数据的能力远远高于您提到的。@K.Davis我添加了VBA I amusing@Leigh.Granger另一方面,你在上面提出的问题是离题的,因为它是在征求人们的意见;相反,如果您将问题(您最近编辑的包含代码是一个很好的开始)的重点重新放在解决此错误的问题上,这可能会使问题更加集中在主题上(尽管仍然有可能更适合超级用户…还不确定问题出在何处--在代码隐藏或操作系统中),问题是什么“与规模有关的问题“?系统资源。我已尝试删除格式以缩小大小。行数约为300k。当试图仅生成透视表本身时,表示excel无法完成该过程。请尝试选择较少的行。@Leigh.Granger关闭excel时,打开任务管理器,查看是否仍有excel.exe进程在运行。听起来Excel没有正确关闭(可能是在VBA的执行/测试过程中),而此Excel实例占用了过多的系统资源。Excel和VBA处理内容和数据的能力远远高于您提到的。@K.Davis我添加了VBA I amusing@Leigh.Granger另一方面,你在上面提出的问题是离题的,因为它是在征求人们的意见;相反,如果您将问题(您最近编辑的包含代码是一个很好的开始)的焦点重新集中在解决此错误的问题上,这可能会使问题更加集中在主题上(尽管它可能更适合超级用户…还不确定问题出在何处--在代码隐藏或操作系统中),为什么它会解决它?关键区别是什么(太难阅读代码墙)?为什么解决了这个问题?关键的区别是什么(太难读代码墙)?