OLAP 过滤层次混乱
OLAP filtering hierarchy confusion
我试图在我的文件中使用指定的值来确定要应用于我的 OLAP 数据透视表的过滤器,但由于存在层次结构,我很难正确标记自定义数组。
录制时我得到以下结果
ActiveSheet.PivotTables("PivotTable3").PivotFields( _
"[Date].[Date Hierarchy].[Month]"). _
VisibleItemsList = Array( _
"[Date].[Date Hierarchy].[Year].&[2019].&[2]" _
)
问题是这部分select同时输入年份和月份。
"[Date].[Date Hierarchy].[Year].&[2019].&[2]" _
)
我已经成功地编写了一个类似的脚本,我只需要 select 年和月,它们没有通过层次结构连接,但是 year/month 组合让我陷入循环,无法分开。
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
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
我试图在我的文件中使用指定的值来确定要应用于我的 OLAP 数据透视表的过滤器,但由于存在层次结构,我很难正确标记自定义数组。
录制时我得到以下结果
ActiveSheet.PivotTables("PivotTable3").PivotFields( _
"[Date].[Date Hierarchy].[Month]"). _
VisibleItemsList = Array( _
"[Date].[Date Hierarchy].[Year].&[2019].&[2]" _
)
问题是这部分select同时输入年份和月份。
"[Date].[Date Hierarchy].[Year].&[2019].&[2]" _
)
我已经成功地编写了一个类似的脚本,我只需要 select 年和月,它们没有通过层次结构连接,但是 year/month 组合让我陷入循环,无法分开。
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
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