Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как определить какой переключатель в группе выбран? Эксель. / 4 сообщений из 4, страница 1 из 1
26.08.2005, 10:41:17
    #33235531
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить какой переключатель в группе выбран? Эксель.
у меня есть фрейм , во фрейме несколько переключателей...

как через фор_ич цикл определить какой выбран переключатель?

этих перключателей туча и они по своим фреймам...

в общей сложности около 200 ...
...
Рейтинг: 0 / 0
26.08.2005, 19:37:59
    #33237017
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить какой переключатель в группе выбран? Эксель.
что такое "фрейм"? В Excel нету такого понятия.

Объекты могут лежать на пользовательском диалоге или на листе. Объекты могут одинаково выглядеть, но быть двух разных типов (Forms style и VBA style). Итого как минимум четыре разных способа доступа, и это только на базовом Экселе без дополнительных библиотек :)
...
Рейтинг: 0 / 0
09.02.2006, 17:58:03
    #33535208
VMichael
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить какой переключатель в группе выбран? Эксель.
У меня похожий вопрос насчет фрейма с переключателями/радиокнопками в Excel-е.

Каким образом отследить смену состояния таких кнопок?

Фрейм лежит на листе, вставляется туда через панель "Элементы управления", кнопку "Другие элементы" и выбор "Microsoft Forms 2.0 Frame".
После чего вызываем фрейм на редактирование и вставляем в него требуемые элементы. Все замечательно - фрейм контролирует все элементы, перемещается с ними, скрывает их, когда скрыт сам и т.п.

Но как поймать момент изменения (да и, вообще, любое событие) от объекта внутри такого фрейма???
Excel дает возможность написать события только для самого фрейма, для вложенных же в него элементов - не дает.
Использование событий типа Click или MouseDown тоже не помогает - они вызываются, только когда действие происходит в пустом месте фрейма, а не на объекте.
...
Рейтинг: 0 / 0
10.02.2006, 11:05:52
    #33536403
VMichael
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить какой переключатель в группе выбран? Эксель.
Разобрался!

Для получения сообщений от таких объектов надо было объявить переменные с опцией WithEvents. Тогда на эти объекты можно повесить события. Заодно не забыть при открытии книги присвоить этим переменным фактические значения.

Например:
В начале
Код: plaintext
1.
Dim WithEvents Type1RadioButton As MSForms.OptionButton
Где-нибудь в инициализации/активации/загрузке
Код: plaintext
1.
Set Type1RadioButton = Frame.Controls("Type1")

А переключатели можно перебирать через цикл по коллекции Controls.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как определить какой переключатель в группе выбран? Эксель. / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]