Как установить отдельные сводные элементы, видимые в true и false, на основе условия в Powerpivot с помощью кода VBA - PullRequest
0 голосов
/ 12 февраля 2019

Я хочу создать сводную таблицу из данных PowerPivot с помощью vba.

Я поместил год и месяц в полях строк с помощью кода VBA, теперь я хочу отфильтровать свои данные на основе конкретных условий, выбранных пользователем;но я не могу установить для свойства visible значение True или false для определенных элементов поля в полях строки

Parameter images

Sub Power_Pivot()

Dim cn As WorkbookConnection
Dim pc As PivotCache
Dim pt As PivotTable
Dim cf As CubeField
Dim pf As PivotField
Dim pi As PivotItem
Dim coll As New Collection

Range("V:Z").Delete
Set cn = ThisWorkbook.Connections("SqlServer sql1 bio_app")
Set pc = ThisWorkbook.PivotCaches.Create(xlExternal, cn, xlPivotTableVersion15)
Set pt = pc.CreatePivotTable(Tool.Range("V3"), "parameter_pivot")

    Set cf = pt.CubeFields("[Query].[Postyear]")
        cf.Orientation = xlRowField
        cf.Position = 1
    Set cf = Nothing

    Set cf = pt.CubeFields("[Query].[postmonth]")
        cf.Orientation = xlRowField
        cf.Position = 2

    Set cf = pt.CubeFields.GetMeasure("[Query].[itemsalesamt]", xlSum)
                pt.AddDataField cf, "Total Sum"

    For i = 2 To 5 Step 1
        If Range("H" & i).Value = "Yes" Then
            Show_ = Range("G" & i).Value
            cf.PivotFields("postyear").PivotItems(Show_).Visible = True
        Else
            Show_ = Range("G" & i).Value
            cf.PivotFields("postyear").PivotItems(Show_).Visible = False
        End If
    Next i


End Sub

Я хочу отфильтровать данные для полей года, гдеЯ просто хочу, чтобы 2016 и 2019 были видны, а 2017 и 2018 были скрыты.

...