vbaselect切片机项目excel

我最近发现了基于variables名过滤切片机的VBA代码。 这是一个伟大的工具来过滤你想看到的

我的代码中的下一步是可能从我的数据透视表/图表(自动)删除可见的数据。

比方说,我已经有一个variables“Remove_ITEM”,需要从显示的数据中删除。 Remove_item在切片机(“slicer_Order”)内。

数据也在数据模型中。

下面的代码是只显示REmove_Item:

ActiveWorkbook.SlicerCaches("Slicer_Order").'VisibleSlicerItemsList = ("[Actuals_Table].[Order].&["& Remove_item &"]") 

现在我想做相反的事情

我希望我能理解你想在你的post中实现的目标。

试试下面的代码,让我知道,如果它按照你的意图工作:

 Option Explicit Sub SlicersTst() Dim WB As Workbook Dim OrderSlcrCache As SlicerCache Dim OrderSlcItem As SlicerItem Dim RemoveItem As Variant Set WB = ThisWorkbook Set OrderSlcrCache = WB.SlicerCaches("Slicer_Order") '<-- set Slicer Cache to "Order" slicer OrderSlcrCache.ClearManualFilter '<-- clear manual filters RemoveItem = "c" '<-- set value for test ' loop through all slicer items in slicer "Order" For Each OrderSlcItem In OrderSlcrCache.SlicerItems If OrderSlcItem.Name = RemoveItem Then OrderSlcItem.Selected = False Next OrderSlcItem End Sub 

请记住,这是专门用于连接数据模型的用法。

 Sub Variables() Part_Number = Worksheets("Solumina_Data_Page").Cells(Row, "B").Value End Sub Sub Sort_Part_Number() Application.ScreenUpdating = False Page1 = ActiveSheet.Name Call Variables Sheets("Dashboard").Activate ActiveWorkbook.SlicerCaches("Slicer_Material").VisibleSlicerItemsList = "[Part List].[Material].&[" & Part_Number & "]" ' "[Part List].[Material].&[77C726210G1]" <<What we want to see Sheets(Page1).Activate Application.ScreenUpdating = True End Sub 

下面是使用数组的一个类似的例子

 Sub Use_ARRAY() Dim ARR() As String ReDim ARR(1 To 2) Call Array_Actuals_Data 'get data Call Array_Outliers_removed 'sort data ARR(1) = "[Actuals_Table].[Order].&[000010840921]" ARR(2) = "[Actuals_Table].[Order].&[000010949159]" ActiveWorkbook.SlicerCaches("Slicer_order").VisibleSlicerItemsList = ARR() End Sub