Включить множественный выбор на слайсере по умолчанию

У меня есть слайсеры в моей книге, и мне нужно, чтобы множественный выбор был включен по умолчанию.

Я пробовал SendKeys.

ActiveSheet.Shapes.Range(Array("WMS")).Select
SendKeys "%S", True
ActiveSheet.Shapes.Range(Array("Equipment")).Select
SendKeys "%S", True
ActiveSheet.Shapes.Range(Array("Warehousing Skills")).Select
SendKeys "%S", True
ActiveSheet.Shapes.Range(Array("OCF Skills")).Select
SendKeys "%S", True

Это выбирает слайсеры, как предполагалось, но sendkeys не включает множественный выбор.

Я попытался добавить паузу до и после команды sendkeys.

Я попытался выбрать два варианта слайсера. Это не включало множественный выбор.


person Justin6587    schedule 30.10.2017    source источник
comment
Вы пытаетесь включить множественный выбор или выбрать несколько вещей (что вы можете сделать с помощью VBA независимо от того, установлен ли множественный выбор или нет).   -  person jeffreyweir    schedule 31.10.2017
comment
Я пытаюсь включить множественный выбор. Я знаю, что вы можете выбрать несколько вещей с помощью VBA. Я сделал это, надеясь, что это вызовет переключение множественного выбора, но этого не произошло.   -  person Justin6587    schedule 31.10.2017


Ответы (5)


Я не верю, что вы можете программно изменить этот переключатель Multiselect, так как в то время, когда я пишу это... это свойство не доступно пользователю через VBA. Похоже, вам нужно либо изменить этот параметр на всех слайсерах вручную, либо научить своих пользователей удерживать нажатой клавишу CTRL, когда они делают свой выбор (что позволяет им делать множественный выбор, как если бы этот переключатель был активирован).

person jeffreyweir    schedule 31.10.2017

Одним из обходных путей может быть выбор слайсера, а затем использование метода SendKeys.

ActiveSheet.YOURSLICER.Select
SendKeys "%s"  || sends ALT+S key combination to toggle multiselect ON.
person Puure    schedule 20.12.2018

Добавление DoEvents после каждой команды SendKeys делает эту работу для меня.

ActiveSheet.Shapes.Range(Array("WMS")).Select
SendKeys "%S"
DoEvents
ActiveSheet.Shapes.Range(Array("Equipment")).Select
SendKeys "%S"
DoEvents
person Jeff    schedule 01.12.2020

ваш код правильный. просто замените S на s и удалите (, True).

person azar gebeil    schedule 02.08.2020

Использование Application.SendKeys сделало эту работу для меня:

ActiveSheet.YOURSLICER.Select    
Application.SendKeys "%s"

Добавьте DoEvents после SendKeys при работе с более чем одним слайсером.

ActiveSheet.YOURSLICER1.Select    
Application.SendKeys "%s"
DoEvents
ActiveSheet.YOURSLICER2.Select    
Application.SendKeys "%s"
DoEvents
...
person zastaph    schedule 09.03.2021