1

我想将多选设置为仪表板中三个切片器的默认设置。

我写了三个(每个切片器一个)短程序,如下所示:

Sub msel() 

 ActiveSheet.Shapes.Range(Array("Slicer1")).Select 
 SendKeys "%s" 
 SendKeys "(ESC)" 

End Sub

当独立调用时,这些过程起作用。当我尝试从另一个 Sub 调用它们中的三个时,只有最后一个 Call 有效(即,只有一个切片器恰好处于多选模式)。

任何指导将不胜感激。

*** 像这样的东西(见下文)具有相同的效果:

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
4

1 回答 1

1

我怀疑 Excel 循环太快,SendKeys 无法生效。如果我在你的第二个 SendKeys 之后添加一个 DoEvents 它对我来说很好。

于 2018-07-05T18:18:22.107 回答