如何选择一个具有不同复选框的切片机的多个切片机项目?

时间:2019-07-30 17:57:55

标签: excel vba checkbox items slicers

我的目的:在文件的工作表中,有一个复选框列表,我可以检查这些复选框,以便选择位于文件另一工作表中的切片器'A'的特定切片。

我成功编写了一个代码,以便在选择复选框后选择切片器“ A”的切片器项(例如,当我单击复选框“ RD”时,它在切片器中选择了切片器项“ RD” 'A')

但是,我无法通过dthe复选框选择一个切片器的多个切片器项目

我试图编写代码以一次选择一个切片器项目,并且它正在工作。当我单击“报表”工作表中的复选框时,在工作簿的工作表中选择切片器的项目已被很好地选中

我尝试了此代码

Sub CheckBox105_Click()

Dim sC As SlicerCache
Dim department(0 To 21) As Variant

Set sC = ThisWorkbook.SlicerCaches("Slicer_Department")

Application.EnableEvents = False

For i = 0 To 21
   department(i) = sC.SlicerItems(i + 1).Name
Next i

sC.VisibleSlicerItemsList = department

            sC.SlicerItems("RR").Selected = True
            sC.SlicerItems("FD").Selected = False
            sC.SlicerItems("HG").Selected = False
            sC.SlicerItems("BP").Selected = False
            sC.SlicerItems("HH").Selected = False
            sC.SlicerItems("CO").Selected = False
            sC.SlicerItems("CO").Selected = False
            sC.SlicerItems("YH").Selected = False
            sC.SlicerItems("LI").Selected = False
            sC.SlicerItems("ED").Selected = False
            sC.SlicerItems("FI").Selected = False
            sC.SlicerItems("GM").Selected = False
            sC.SlicerItems("GU").Selected = False
            sC.SlicerItems("HR").Selected = False
            sC.SlicerItems("IT").Selected = False
            sC.SlicerItems("LE").Selected = False
            sC.SlicerItems("OP").Selected = False
            sC.SlicerItems("RK").Selected = False
            sC.SlicerItems("SRG").Selected = False
            sC.SlicerItems("BRM").Selected = False
            sC.SlicerItems("DT").Selected = False
            sC.SlicerItems("IC").Selected = False
            sC.SlicerItems("(blank)").Selected = False

Application.EnableEvents = True

使用此代码,我期望的结果如下: 我选择了checkboxe105,它选择了切片器项目“ RD” 我选择checkoxe106,然后选择切片器项目“ FD”,并保持选择的第一个切片器项目“ RD”

1 个答案:

答案 0 :(得分:0)

免责声明:启动VBA,因此请删除此问题,以免引起误解/无法理解问题。

可以将数组/循环与.SlicerItems(索引或名称)一起使用吗?Selected = True。注意,未选中时,需要写一些东西来取消选择切片器项目。

私人子CheckBox7_Click()

With ActiveWorkbook.SlicerCaches("Slicer_Product")
    .SlicerItems("Baby Clothes").Selected = True
    .SlicerItems("Diamonds").Selected = True
    .SlicerItems("Hats").Selected = True
    .SlicerItems("Kid Activities").Selected = True
End With

私人子CheckBox4_Click()

With ActiveWorkbook.SlicerCaches("Slicer_Product")
    .SlicerItems(1).Selected = True
End With

结束子

私人子CheckBox5_Click()

With ActiveWorkbook.SlicerCaches("Slicer_Product")
    .SlicerItems(1).Selected = True
    .SlicerItems(2).Selected = True
End With

私人子CheckBox6_Click()

With ActiveWorkbook.SlicerCaches("Slicer_Product")
    .SlicerItems(1).Selected = True
    .SlicerItems(2).Selected = True
    .SlicerItems(3).Selected = True
End With

结束子

'Private Sub CheckBox1_Click() ''选择/取消选择帽子复选框 '如果CheckBox1.Value = True则 呼叫AddHats 'ElseIf CheckBox1.Value = False然后 致电RemoveHats 别的 'MsgBox“帮助” ' 万一 ' “结束子