【问题标题】:VBA Slicer Select BlankVBA 切片器选择空白
【发布时间】:2017-10-23 07:48:22
【问题描述】:

我有以下情况:我有一张带有切片器的工作表,应该只有“空白”选择。有时我只有空白,有时我有空白以及 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

只有在所有选项都可用的情况下才能完美运行

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

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

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

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

谢谢, 索林

【问题讨论】:

  • 我看过这个帖子,但不是一回事。我不想一次选择每个项目,我只想选择一个项目
  • 你误读了标题,它说的是一个项目,而不是每个项目。
  • 我觉得代码对我来说太多了,但没有得到它。我不明白我的“空白”应该放在哪里。

标签: excel slicers vba


【解决方案1】:

尝试循环遍历项目并选择空白项:

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

【讨论】:

  • 即使没有空白可供我选择,代码也运行良好。很好:)
  • 不用担心,不客气。是的,它只是在名为“(空白)”的项目上放置一个选择 - 如果结果选择中绝对没有项目,我认为切片器只会“全选”,但我必须进行测试。无论如何,很高兴它成功了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-04
  • 1970-01-01
相关资源
最近更新 更多