VBA宏 - 数据透视表CurrenRegion

时间:2017-09-08 18:17:52

标签: vba excel-vba pivot excel

我一直收到错误消息

  

运行时错误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")

3 个答案:

答案 0 :(得分:1)

你不需要一个宏。只需将源数据转换为Table。使用"格式为表"主菜单上的按钮。然后你的源数据将始终是动态的。

答案 1 :(得分:0)

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

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")

答案 2 :(得分:0)

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