如何创建数据透视表以使其每周更改?

时间:2019-05-06 14:53:19

标签: excel vba

我在excel电子表格中有数据,我正在尝试创建数据的数据透视表,该表能够随着数据的变化而每周变化。现在我的代码可以正常工作,但是上面写着“ GL ENTERED INV raw data!R3C1:R30C06”的代码是固定不变的,我如何才能每周更改一次?

Sub ptable 
    Range(“A4:F” & Rows.Count).End(xlUp).Select
    Sheets.Add
       ActiveWorkbook.PivotCaches.Create(SourceType:=xlDataBase, SourceData:=“GL ENTERED INV raw data!R3C1:R30C06”, Version:=xlPivotTableVersion12).CreatePivotTable TableDestination:=“Sheet1!R3C1”, TableName:=“PivotTable1”, DefaultVersion:=xlPivotTableVersion12
End sub

1 个答案:

答案 0 :(得分:0)

您需要声明一个保存数据最后一行的变量,并用R&LastRow替换“ R30”,如下所示:

Sub ptable()

    Dim LastRow As Long

    With ThisWorkbook.Sheets("GL ENTERED INV raw data")
        LastRow = .Cells(.Rows.Count, 1).End(xlUp) 'the 1 means column "A" so if your data has the max rows on column A is ok, otherwise change that number
    ThisWorkbook.Sheets.Add

    ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="GL ENTERED INV raw data!R3C1:R" & LastRow & "C6", _
        Version:=xlPivotTableVersion12).CreatePivotTable TableDestination:=“Sheet1!R3C1”, _
        TableName:=“PivotTable1”, DefaultVersion:=xlPivotTableVersion12

End Sub 

您还可以仅在功能区公式下方创建一个NamedRange并使用Offset公式来获取动态范围,您的数据透视表将始终用作NamedRange