我在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
答案 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