VBA为超过69000行的xlsx创建数据透视表

VBA为超过69000行的xlsx创建数据透视表,vba,excel,Vba,Excel,我是VBA编程新手,目前正在为几个xlsx/xls文件创建透视表。有些文件有70000多个实例 'Create Pivot Table for PAX Traffic for each subclasses Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select Dim SourceRange As Range Set

我是VBA编程新手,目前正在为几个xlsx/xls文件创建透视表。有些文件有70000多个实例

'Create Pivot Table for PAX Traffic for each subclasses

Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select

Dim SourceRange As Range
Set SourceRange = Selection
Application.CutCopyMode = False

    Sheets.Add
    ActiveWorkbook.PivotCaches.Create( _
    SourceType:=xlDatabase, _
    SourceData:=SourceRange, _
    Version:=xlPivotTableVersion11).CreatePivotTable _
    TableDestination:="Sheet1!R3C1", TableName:="PivotTable1" _
        , DefaultVersion:=xlPivotTableVersion11
在拥有70000多个实例的xlsx文件出现之前,它一直运行良好

'Create Pivot Table for PAX Traffic for each subclasses

Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select

Dim SourceRange As Range
Set SourceRange = Selection
Application.CutCopyMode = False

    Sheets.Add
    ActiveWorkbook.PivotCaches.Create( _
    SourceType:=xlDatabase, _
    SourceData:=SourceRange, _
    Version:=xlPivotTableVersion11).CreatePivotTable _
    TableDestination:="Sheet1!R3C1", TableName:="PivotTable1" _
        , DefaultVersion:=xlPivotTableVersion11
谢谢你的温柔帮助。

试试这个

Sub CreatePivot()
Dim pt1 As PivotTable
Dim ptcache1 As PivotCache

Dim trange As Range
Dim srange As Range

Set srange = ActiveSheet.Range("A1").CurrentRegion
Set trange = Sheets("Sheet2").Range("A1")


Set ptcache1 = ActiveWorkbook.PivotCaches.Create(xlDatabase, srange)
Set pt1 = ptcache1.CreatePivotTable(trange, "do_Amazing")


With pt1
.PivotFields("...PivotFields1...").Orientation = xlRowField
.PivotFields("...PivotFields2...").Orientation = xlDataField
End With

我能够通过将范围转换为Excel表(在VBA中称为ListObject)来解决这个问题

然后,我将Excel表而不是范围作为源传递给
PivotCaches.Create()


它刚刚起作用。

我想,对于大文件,您可能会遇到某种错误或崩溃。你能准确描述一下它不适用于哪些文件吗?你能描述一下它如何“不适用于”这些较大的文件吗?您是否收到错误消息?您好,下面显示的是错误消息运行时错误“13!”键入不匹配请告诉我查看您的excel。你能把这张纸上传到某个地方并提供林芝Sathish K吗?谢谢你的回复。“令人惊奇”是什么意思?我根据你的参考修改了我的代码。当它仍然显示运行时错误“13!”时,类型不匹配,直到它对具有70000多个指令的文件执行操作为止。它隐藏以下代码集ptcache1=ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase,SourceData:=SourceRange,Version:=xlPivotTableVersion14)Do_Azing-数据透视表的名称。。你试过我上面的代码吗?这是,我试过你的代码,它显示了运行时错误13
我如何在注释中键入修改后的代码?