Как создать сводную таблицу, чтобы она менялась от недели к неделе? - PullRequest
0 голосов
/ 06 мая 2019

У меня есть данные в электронной таблице 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 голосов
/ 06 мая 2019

Вам нужно объявить переменную, содержащую последнюю строку ваших данных, и заменить R30 на R & LastRow следующим образом:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...