我的目标是使用VBA动态隐藏数据透视表字段列表中的所有项目,但存储在单独表格中的项目数组除外。问题是它是一个OLAP多维数据集,所以我必须使用Cube字段方法。此外,我只知道隐藏特定项目的方法。我想要做的是隐藏除特定项目之外的所有内容。
我正在
应用程序定义或对象相关错误
在.HiddenItemsList
我知道我在语法方面已经离开了,但此时却很失落。
Public Sub FilterRd()
Dim arCC As Variant
Dim pfCostCenterCode As PivotField
Dim PF As PivotField
Dim PI As PivotItem
arCC = Worksheets("CCs").ListObjects("tblCCs").DataBodyRange.Value
arCC = Application.Transpose(arCC)
Set pfCostCenterCode = Worksheets("RDA").PivotTables("PTccs").PivotFields("[DCC].[CCC].[CCC]")
a = Filter_PivotField(pfCostCenterCode, arrCC)
End Sub
Private Function Filter_PivotField(pvtField As PivotField, varItemList As Variant)
Dim i As Long
' On Error GoTo ErrorHandler:
Application.ScreenUpdating = False
With pvtField
.ClearAllFilters
.CubeField.IncludeNewItemsInFilter = True
End With
For i = LBound(varItemList) + 1 To UBound(varItemList)
pvtField.HiddenItemsList = Array("[DCC].[CCC].&" & varItemList(i) & "]")
Next i
ErrorHandler:
MsgBox "Error while trying to process item: " & varItemList(i)
End Function