我正在尝试使用文件中的指定值来确定要应用于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
答案 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