L oop через все значения сводных полей всех сводных таблиц - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть книга Excel и на одном листе под названием «RAW» у меня есть таблица, подобная этой:

Год | Группа продуктов | Пункт | Сайт | Категория | Янв | Фев | Март

Эта таблица меняется каждый месяц, поэтому в следующем месяце у меня будут данные за месяцы Фев Март Апр (и т. Д.).

На других листах моей рабочей книги некоторые сводные таблицы, все они связаны с таблицей листа "RAW". Я хочу, чтобы после изменения данных RAW был выполнен макрос, позволяющий мне автоматически обновлять все сводные таблицы и выбирать три месяца как значения (поля сводок?) Для каждой сводной таблицы.

У меня есть следующий код:

Sub Update_PT()

Dim TD As PivotTable
Dim Hoja As Worksheet

month1 = Sheets("Raw").Range("F1").Value
month2 = Sheets("Raw").Range("G1").Value
month3 = Sheets("Raw").Range("H1").Value

For Each Hoja In ThisWorkbook.Sheets
    For Each TD In Hoja.PivotTables
        TD.PivotCache.Refresh
    Next TD
Next Hoja

End Sub

Что мне не хватает, так это l oop через все сводные таблицы и установите поля (или значения) сводки в качестве моих переменных month1, month2 и month3.

Кто-нибудь может мне помочь?

Большое спасибо. С наилучшими пожеланиями.

1 Ответ

0 голосов
/ 21 февраля 2020

Я пробовал это:

 Sub Actualizar_Tablas()

 Dim TD As PivotTable Dim Hoja As Worksheet

 month1 = Sheets("Raw").Range("G1").Value month2 =
 Sheets("Raw").Range("H1").Value month3 =
 Sheets("Raw").Range("I1").Value

 For Each Hoja In ThisWorkbook.Sheets
     For Each TD In Hoja.PivotTables
         TD.PivotCache.Refresh
         TD.AddDataField _
             Field:=TD.PivotFields(month1), _
             Function:=xlSum
         TD.AddDataField _
             Field:=TD.PivotFields(month2), _
             Function:=xlSum
         TD.AddDataField _
             Field:=TD.PivotFields(month3), _
             Function:=xlSum
     Next TD Next Hoja

 End Sub

Но у меня есть следующие проблемы:

-Имя значений "Sum of & month1", и я хочу, чтобы они были просто MONTH1. Я пытаюсь изменить его с помощью заголовка, но не могу.

-Если я запускаю макрос во второй раз, я получаю 3 новых значения как «Сумма & месяц 1 и 2» и хочу только один раз значения.

...