Невозможно получить доступ к объектам формы Excel через VBA, когда элементы сгруппированы - PullRequest
0 голосов
/ 17 сентября 2009

Есть ли в любом случае доступ к (через VBA) свойствам объекта формы (с использованием панели инструментов форм до 2007 года и на вкладке разработчика / insert / Form Controls для 2007), когда он сгруппирован?

Например, обычно вы можете получить доступ к свойству max элемента управления Spinner с помощью следующего кода:

Sheet1.Spinners("Spinner 1").Max 

OR

Sheet1.Shapes("Spinner 1").ControlFormat.Max

Насколько я могу судить, единственный способ получить доступ к сгруппированному элементу - использовать коллекцию фигур, например:

Sheet1.Shapes("Group 1").GroupItems("Spinner 1")

Проблема в том, что когда я пытаюсь получить доступ к свойству этого элемента управления, например

Sheet1.Shapes("Group 1").GroupItems("Spinner 1").ControlFormat.Max

Я получаю следующую ошибку: Ошибка времени выполнения «1004»: невозможно получить свойство Max класса Spinner.

Кажется, довольно простая проблема, но я немного застрял. Может быть, есть способ преобразовать объект в объект управления счетчиком, а затем получить к нему доступ?

Есть предложения?

1 Ответ

2 голосов
/ 17 сентября 2009

[Редактировать: я ошибся. Единственный способ, которым это будет работать, - использование Selection. Будет работать следующий код:

Sheet1.Shapes("Group 1").GroupItems("Spinner 1").Select
Selection.Max = 20

Очевидно, что это не идеально. Любая дальнейшая помощь будет грандиозной.]

После некоторого уговора я сумел выяснить это. Чтобы получить доступ к сгруппированному элементу управления формой, вам необходимо использовать коллекцию GroupObjects (скрытый элемент):

Sheet1.GroupObjects("Group 1").ShapeRange.GroupItems("Spinner 1").ControlFormat.Max

Надеюсь, что это поможет любому, кто может столкнуться с этой проблемой!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...