簡體   English   中英

VBA選擇切片器項目Excel

[英]vba select slicer item excel

我最近發現了VBA代碼,可根據變量名稱過濾切片器。 這是過濾您想要看到的東西的好工具

代碼的下一步是潛在地(自動)從數據透視表/圖表中刪除可見數據。

可以說我已經有一個變量“ Remove_ITEM”,該變量需要從顯示的數據中刪除。 Remove_item位於切片器中(“ slicer_Order”)。

數據也位於數據模型中。

下面的代碼僅顯示REmove_Item:

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

現在我想做相反的事情

我希望我能理解您在帖子中要實現的目標。

試試下面的代碼,讓我知道它是否按預期工作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM