VBA切片机选择空白

时间:2017-10-23 07:48:22

标签: excel-vba slicers vba excel

我有以下情况:我有一张带有切片器的工作表应该只有"空白"选择。有时我只有空白,有时我有空白,有1到5个其他选项。我的问题是,我不能强制宏只留下选择其他选项的空白。我的文件是一个模板,所以我不知道人们是否会留空或者选择其他任何东西。

我有几次参加:

With ActiveWorkbook.SlicerCaches("Slicer_OOS_Reason_2017___Performance")

.SlicerItems("(blank)").Selected = True

当我有其他人而不是空白时,它不起作用:(

   With ActiveWorkbook.SlicerCaches("Slicer_OOS_Reason_2017___Performance")
    .SlicerItems("(blank)").Selected = True
    .SlicerItems("option1").Selected = False
    .SlicerItems("option2").Selected = False
    .SlicerItems("option3").Selected = False
    .SlicerItems("option4").Selected = False
    .SlicerItems("option5").Selected = False
End With
只有当所有选项都可用时,这个才能完美地运作

如果切片器中没有一个选项,我会得到"无效的过程调用或参数"

我看到了其他代码,但我有点失落。我需要一个简单的代码,我不需要任何其他的东西,然后每次都选择空白:)

我不需要迭代我的列表中的每个选项,我需要选择一个选项,而不考虑可用选项的数量和名称

稍后编辑:即使在切片器中选择了该选项,我使用的切片器也不会显示旧的删除数据。

感谢, 索林

1 个答案:

答案 0 :(得分:0)

尝试循环遍历项目,只需选择空白项目:

Dim si as SlicerItem
With ActiveWorkbook.SlicerCaches("Slicer_OOS_Reason_2017___Performance")
For Each si in .SlicerItems
    If si.Name = "(blank)" Then
        si.Selected = True
    Else
        si.Selected = False
    End If
Next si
End With