OLAP过滤层次结构混乱

时间:2019-03-01 20:31:51

标签: excel vba pivot filtering olap

我正在尝试使用文件中的指定值来确定要应用于OLAP数据透视表的过滤器,但是由于存在层次结构,我正在努力正确地标记自定义数组。

记录时,我得到以下结果

ActiveSheet.PivotTables("PivotTable3").PivotFields( _
        "[Date].[Date Hierarchy].[Month]"). _
        VisibleItemsList = Array( _
        "[Date].[Date Hierarchy].[Year].&[2019].&[2]" _
        )

问题片是该部分,它在同一时间选择年份和月份。

"[Date].[Date Hierarchy].[Year].&[2019].&[2]" _
        )

我已经成功地编写了一个类似的脚本,我只需要选择它们之间没有通过层次结构连接的年和月,但是年/月组合会使我陷入循环,并且无法分开。

Dim pt As PivotTable
Dim Field As PivotField
Dim Field2 As PivotField
Dim year As String
Dim month As String


Set pt = Worksheets("Csum").PivotTables("PivotTable1")
Set Field = pt.PivotFields("[CC Date].[CC Year].[CC Year]")
Set Field2 = pt.PivotFields("[CS Date].[CS Month].[CS Month]")
year = Worksheets("Sheet1").Range("B8")
month = Worksheets("sheet1").Range("B9")


Sheets("CashSummary").Select


With pt
    Field.CurrentPageName = "[CC Date].[CC Year].&[" & year & "]"
    Field2.CurrentPageName = "[CS Date].[CS Month].&[" & month & "]"
End With

1 个答案:

答案 0 :(得分:0)

Function SetFilterOfMonth(yr, mon)
mFilter = "&[" & yr & "].&[" & mon & "]"

ActiveSheet.PivotTables("PivotTable3").PivotFields( _
        "[CS Date].[CS Date Hierarchy].[CS Year]" _
        ).VisibleItemsList = Array("")
    ActiveSheet.PivotTables("PivotTable3").PivotFields( _
            "[CS Date].[CS Date Hierarchy].[CS Month]" _
            ).VisibleItemsList = Array( _
            "[CS Date].[CS Date Hierarchy].[CS Year]." & mFilter _
            )

End Function

Sub Test()
    mYear = Worksheets("Sheet1").Range("B8")
    mMonth = Worksheets("Sheet1").Range("B9")
    SetFilterOfMonth mYear, mMonth
End Sub