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