默认情况下在切片器上启用 Multi-select

Enable Multi-select on slicer by default

我的工作簿中有切片器,我需要默认启用多个select。

我尝试了 SendKeys。

ActiveSheet.Shapes.Range(Array("WMS")).Select
SendKeys "%S", True
ActiveSheet.Shapes.Range(Array("Equipment")).Select
SendKeys "%S", True
ActiveSheet.Shapes.Range(Array("Warehousing Skills")).Select
SendKeys "%S", True
ActiveSheet.Shapes.Range(Array("OCF Skills")).Select
SendKeys "%S", True

这 select 是预期的切片器,但 sendkeys 没有启用 multi-select。

我尝试在 sendkeys 命令前后添加一个停顿。

我尝试了 select 两个切片器选项。这没有启用 multi-select.

我不相信您可以在我写这篇文章时以编程方式更改多选切换...属性 不会通过 VBA 暴露给用户。看起来您要么必须手动更改所有切片器上的设置,要么教您的用户在进行选择时按住 CTRL 键(这样他们就可以进行多项选择,就好像该切换已激活一样)。

一种解决方法是 select 切片器,然后使用 SendKeys 方法。

ActiveSheet.YOURSLICER.Select
SendKeys "%s"  || sends ALT+S key combination to toggle multiselect ON.

您的代码是正确的。只需将 S 替换为 s 并删除 (, True)。

在每个 SendKeys 命令后添加一个 DoEvents 对我来说很有效。

ActiveSheet.Shapes.Range(Array("WMS")).Select
SendKeys "%S"
DoEvents
ActiveSheet.Shapes.Range(Array("Equipment")).Select
SendKeys "%S"
DoEvents

使用 Application.SendKeys 为我完成了这项工作:

ActiveSheet.YOURSLICER.Select    
Application.SendKeys "%s"

当使用多个切片器时,在 SendKeys 之后添加 DoEvents。

ActiveSheet.YOURSLICER1.Select    
Application.SendKeys "%s"
DoEvents
ActiveSheet.YOURSLICER2.Select    
Application.SendKeys "%s"
DoEvents
...