2

我的工作簿中有切片器,默认情况下需要启用多选。

我试过发送键。

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

这会按预期选择切片器,sendkeys但未启用多选。

sendkeys我尝试在命令之前和之后添加暂停。

我尝试选择两个切片器选项。这没有启用多选。

4

5 回答 5

2

一种解决方法可能是您选择切片器,然后使用 SendKeys 方法。

ActiveSheet.YOURSLICER.Select
SendKeys "%s"  || sends ALT+S key combination to toggle multiselect ON.
于 2018-12-20T11:24:51.987 回答
1

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

于 2017-10-31T21:24:15.997 回答
1

在每个 SendKeys 命令之后添加一个 DoEvents 使这对我有用。

ActiveSheet.Shapes.Range(Array("WMS")).Select
SendKeys "%S"
DoEvents
ActiveSheet.Shapes.Range(Array("Equipment")).Select
SendKeys "%S"
DoEvents
于 2020-12-01T21:12:20.043 回答
0

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

于 2020-08-02T21:21:41.513 回答
0

使用 Application.SendKeys 使这项工作对我有用:

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

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

ActiveSheet.YOURSLICER1.Select    
Application.SendKeys "%s"
DoEvents
ActiveSheet.YOURSLICER2.Select    
Application.SendKeys "%s"
DoEvents
...
于 2021-03-09T09:55:07.223 回答