Страница: 1 |
Вопрос: Перебор элементов управления на рабочем листе | Добавлено: 02.02.07 00:37 |
Автор вопроса: ![]() |
Каким образом можно перебрать все элементы управления, которые находятся на рабочем листе, а не на форме. Как я понял, на рабочем листе нет семейства Controls, как в форме.
Прямое обращение к каждому элементу управления очень утомительно, т.к. их достатачно много. Необходимо пролистать все элементы управления (CheckBox, OptionButton) и собрать с них установленные значения. |
Ответы | Всего ответов: 4 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 185 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 02.02.07 08:00 |
Все элементы управления на листе находятся в коллекции Shapes... Нужно только анализировать их свойство Type - элементы управления имеют значение msoOLEControlObject
With WorkSheets(1)
For Each ss in .Shapes If ss.Type = msoOLEControlObject Then Debug.Print ss.Name 'здесь ss - это элемент управления на листе End if Next ss End With |
Номер ответа: 2 Автор ответа: ![]() ![]() ICQ: 234458121 Вопросов: 38 Ответов: 107 |
Профиль | Цитата | #2 | Добавлено: 19.02.07 11:35 |
Прекрасно. Все работает. Только вот в каком порядке он их перебирает? По мере их создания что ли? Можно ли изменить этот порядок? |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 185 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 19.02.07 13:40 |
Да, перебор идет в порядке их создания... точнее в порядке возрастания их свойства Item, который присваивается в порядке их создания.
Чтобы понять, какой совет можно дать по поводу того, как изменить порядок, нужно знать цель и смысл, зачем это нужно. В самом же общем случае, всегда можно создать массив объектов или их коллекцию в нужном порядке и работать с этим массивом или коллекцией. |
Номер ответа: 4 Автор ответа: ![]() ![]() ICQ: 234458121 Вопросов: 38 Ответов: 107 |
Профиль | Цитата | #4 | Добавлено: 21.02.07 11:26 |
Смысл в упрощении порядка. Т.е. чтобы свойство Item соответствовало физическому размещению фигур на листе. У меня есть набор чек-боксов, расположенных в виде таблицы 4х3. Хотелось бы чтобы они перебирались либо по строкам, либо по столбцам, а они перебираются в хаотичном порядке.
Именно и пришлось создавать массив, чтобы их там упорядочить так как надо. Спасибо. |
Страница: 1 |
|