Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 默认情况下启用切片器上的多重选择_Excel_Vba_Sendkeys_Slicers - Fatal编程技术网

Excel 默认情况下启用切片器上的多重选择

Excel 默认情况下启用切片器上的多重选择,excel,vba,sendkeys,slicers,Excel,Vba,Sendkeys,Slicers,我的工作簿中有切片器,默认情况下需要启用多选 我试过发送密钥 ActiveSheet.Shapes.Range(数组(“WMS”))。选择 发送密钥“%S”,为真 ActiveSheet.Shapes.Range(数组(“设备”))。选择 发送密钥“%S”,为真 ActiveSheet.Shapes.Range(数组(“仓储技能”))。选择 发送密钥“%S”,为真 ActiveSheet.Shapes.Range(数组(“OCF技能”))。选择 发送密钥“%S”,为真 这将按预期选择切片器,但

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

我试过发送密钥

ActiveSheet.Shapes.Range(数组(“WMS”))。选择
发送密钥“%S”,为真
ActiveSheet.Shapes.Range(数组(“设备”))。选择
发送密钥“%S”,为真
ActiveSheet.Shapes.Range(数组(“仓储技能”))。选择
发送密钥“%S”,为真
ActiveSheet.Shapes.Range(数组(“OCF技能”))。选择
发送密钥“%S”,为真
这将按预期选择切片器,但
sendkeys
未启用多选

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


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

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

一种解决方法是选择切片器,然后使用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
...

您正在尝试启用“multi-select”还是选择多个项目(无论是否设置“multi-select”,都可以使用VBA执行)。我正在尝试启用“multi-select”。我知道你可以用VBA选择多个东西。我希望它能触发多选切换,但它没有。