多select Excel 切片器
Multi-select Excel slicers
我想将 Multi-select 设置为仪表板中三个切片器的默认设置。
我写了三个(每个切片器一个)短程序,如下所示:
Sub msel()
ActiveSheet.Shapes.Range(Array("Slicer1")).Select
SendKeys "%s"
SendKeys "(ESC)"
End Sub
当独立调用时,这些过程起作用。当我尝试从另一个 Sub 调用它们中的三个时,只有最后一个 Call 有效(即,只有一个切片器恰好处于 Multi-select 模式)。
任何指导将不胜感激。
*** 这样的东西(见下文)具有相同的效果:
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,它对我来说就很好。
我想将 Multi-select 设置为仪表板中三个切片器的默认设置。
我写了三个(每个切片器一个)短程序,如下所示:
Sub msel()
ActiveSheet.Shapes.Range(Array("Slicer1")).Select
SendKeys "%s"
SendKeys "(ESC)"
End Sub
当独立调用时,这些过程起作用。当我尝试从另一个 Sub 调用它们中的三个时,只有最后一个 Call 有效(即,只有一个切片器恰好处于 Multi-select 模式)。
任何指导将不胜感激。
*** 这样的东西(见下文)具有相同的效果:
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,它对我来说就很好。