VBA - Изменить вычисляемое поле на каждом листе - PullRequest
0 голосов
/ 21 октября 2019

Я могу запустить свой VBA-скрипт через каждую вкладку и применить функции сводной таблицы. Однако я борюсь с тем, чтобы изменить существующее вычисляемое поле в сводных таблицах. Как изменить существующее вычисляемое поле в каждой сводной таблице каждого листа рабочей книги?

Я поместил звездочки, где я добавил код VBA, который пытаюсь реализовать (я понимаю, что это не так). не работает в настоящее время).

Sub DEG()

Dim WS As Excel.Worksheet
Dim aWB As Excel.Workbook
Dim pvt As Excel.PivotTable
Dim myPivotField As Excel.PivotField
**Dim myCalcField As Excel.CalculatedFields
        Set aWB = ActiveWorkbook
        For Each WS In aWB.Worksheets

            For Each pvt In WS.PivotTables

        Set myPivotField = Nothing
        **Set myCalcField = Nothing

        On Error Resume Next

        Set myPivotField = pvt.PivotFields("Convert or Convert with DEG")

        myPivotField.CurrentPage = "Y"

        Set myPivotField = pvt.PivotFields("Select2")

        myPivotField.CurrentPage = "1"

        Set myPivotField = pvt.PivotFields("Top 20")

        myPivotField.CurrentPage = "Y"

        **Set myCalcField = pvt.CalculatedFields("Customer Savings %")

        **myCalcField = "=IF('Field1'=0,0,('Field2'/'Field3'))"

1 Ответ

1 голос
/ 21 октября 2019

Нечто подобное:

Sub DEG()

    Dim WS As Excel.Worksheet
    Dim aWB As Excel.Workbook
    Dim pvt As Excel.PivotTable

    Set aWB = ActiveWorkbook
    For Each WS In aWB.Worksheets
        For Each pvt In WS.PivotTables

            On Error Resume Next

            pvt.PivotFields("Convert or Convert with DEG").CurrentPage = "Y"

            pvt.PivotFields("Select2").CurrentPage = "1"

            pvt.PivotFields("Top 20").CurrentPage = "Y"

            pvt.CalculatedFields.Item("Customer Savings %").Formula = _
                                  "=IF('Field1'=0,0,('Field2'/'Field3'))"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...