多选择Excel切片器
我想将Multi-select设置为仪表板中三个切片器的默认设置 我编写了三个(每个切片器一个)短过程,如下所示:多选择Excel切片器,excel,slicers,vba,Excel,Slicers,Vba,我想将Multi-select设置为仪表板中三个切片器的默认设置 我编写了三个(每个切片器一个)短过程,如下所示: Sub msel() ActiveSheet.Shapes.Range(Array("Slicer1")).Select SendKeys "%s" SendKeys "(ESC)" End Sub 当独立调用时,这些过程可以工作。当我试图从另一个子系统调用其中三个时,只有最后一个调用有效(即,只有一个切片器恰好处于多选模式) 任何指导都将不胜感激 ***类似的
Sub msel()
ActiveSheet.Shapes.Range(Array("Slicer1")).Select
SendKeys "%s"
SendKeys "(ESC)"
End Sub
当独立调用时,这些过程可以工作。当我试图从另一个子系统调用其中三个时,只有最后一个调用有效(即,只有一个切片器恰好处于多选模式)
任何指导都将不胜感激
***类似的内容(见下文)具有相同的效果:
Sub All()
Dim sCache As SlicerCache
Dim sl As Slicer
For Each sCache In ActiveWorkbook.SlicerCaches
For Each sl In sCache.Slicers
sl.Shape.Select
SendKeys "%s"
SendKeys "{ESC}"
Next sl
Next sCache
End Sub
我怀疑Excel循环太快,SendKeys无法生效。如果我在您的第二个SendKeys之后添加DoEvents,它对我来说很好。为什么要使用select?你就不能循环每个切片器的切片数吗?@JvdV是的,事实上我循环是为了清除过滤器,这很好。我没能做到的是启用multi-selectRight,嗯……你不能:@JvdV谢谢你的快速回复。我发现Q&A。有趣的是,正如我在问题中提到的,当我调用其中一个sub(对于一个切片器)时,它按预期工作。嗯,好吧,那么如果你不调用三个不同的过程,而是在工作簿\u open事件上循环这些切片器呢。如果这行得通,我会大吃一惊。