VBA宏-透视表当前区域

VBA宏-透视表当前区域,vba,excel,pivot,Vba,Excel,Pivot,我一直收到一条错误消息 运行时错误1004:无法获取的CurrentRegion属性 靶场课 我正在尝试创建一个动态的源数据,因为源正在更改 Dim pc As PivotCache Dim pt As PivotTable Set pc = ThisWorkbook.PivotCaches.Create( _ SourceType:=xlDatabase, _ SourceData:=Sheet1.Name & "!" & Sheet1.Range("A1")

我一直收到一条错误消息

运行时错误1004:无法获取的CurrentRegion属性 靶场课

我正在尝试创建一个动态的源数据,因为源正在更改

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)

Worksheets.Add
Range("A3").Select

Set pt = pc.CreatePivotTable( _
    TableDestination:=ActiveCell, _
    TableName:="NetZero")

这不需要宏。只需将源数据转换为表。使用主菜单上的“表格格式”按钮。然后,您的源数据将始终是动态的。

如果您希望继续使用不断增长的动态范围(而不是表格)的概念,请使用以下代码:

Dim pc As PivotCache
Dim pt As PivotTable

Set pc = ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
                    SourceData:=Sheet1.Range("A1").CurrentRegion.Address(False, False, xlA1, xlExternal))

Worksheets.Add

' there's no need to select the Range, you can set the Table destination to "A3"
Set pt = pc.CreatePivotTable(TableDestination:=Range("A3"), TableName:="NetZero")

我不知道确切的原因,但我也有同样的问题。您可以尝试在excel工作表中选择单元格。如果您能够选择单元格,则CurrentRegion属性将起作用。如果没有,则您的单元格被锁定。重新打开excel工作表并尝试运行宏