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选择多个东西。我希望它能触发多选切换,但它没有。