Страница: 1 |
Вопрос: Как определить какой контрол передал управление? | Добавлено: 12.02.09 13:54 |
Автор вопроса: ![]() |
Всем здрасьте!
Собственно, вопрос в теме. Есть 2-а контрола, каторые при нажатии выполняют Call Macros1 , а как определить из Macros1, какой из контролов его вызвал?
Заранее спасибо. |
Ответы | Всего ответов: 12 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 33 Ответов: 245 |
Профиль | Цитата | #1 | Добавлено: 12.02.09 14:09 |
Да, забыл сказать, сейчас я делаю это через глобальную переменную. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ICQ: 308-534-060 Вопросов: 20 Ответов: 1860 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 12.02.09 14:51 |
Сделай через локальную переменную - передай макросу это значение в параметре, либо можешь по ссылке на объект передать сам контрол.
|
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 33 Ответов: 245 |
Профиль | Цитата | #3 | Добавлено: 12.02.09 15:07 |
mc-black, в очередной раз, Спасибо. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 33 Ответов: 245 |
Профиль | Цитата | #4 | Добавлено: 12.02.09 15:13 |
Правда,
Macros1(Ctl As Control) - у меня не работает, работает -
|
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 5 Ответов: 344 |
Профиль | Цитата | #5 | Добавлено: 12.02.09 20:02 |
Не понимаю, над чем париться?
|
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 5 Ответов: 344 |
Профиль | Цитата | #6 | Добавлено: 12.02.09 20:06 |
Ctl As Control... не работает? Попробуй Ctl As MSForms.Control
|
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ICQ: 308-534-060 Вопросов: 20 Ответов: 1860 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 13.02.09 23:34 |
Не понимаю, над чем париться?
Чтобы потом сразу работать с объектом, передавшим управление, а не через Select..Case / If..ElseIf. Если до объекта нет дела, то конечно твой вариант. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 5 Ответов: 344 |
Профиль | Цитата | #8 | Добавлено: 14.02.09 08:36 |
Михаил, на основании твоего следующего вопроса (show.aspx?id=183250), диалога с abv (show.aspx?id=183112) и собственного дара ясновидения осмелюсь предположить, что CommandButton1 и CommandButton2 выполняют однотипные, но противополжные, взаимоисключающие действия типа Пуск-Стоп, Скрыть-Показать и т.п. В этом случае я бы не стал плодить лишние кнопки, а сделал что-то типа этого:
|
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 192496851 Вопросов: 75 Ответов: 3178 |
Профиль | Цитата | #9 | Добавлено: 14.02.09 10:12 |
не, вполне нормальный экстрасекс. мне тож кажеццо, что чел не подумав дважды, подумал 1 раз..) |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 5 Ответов: 344 |
Профиль | Цитата | #10 | Добавлено: 14.02.09 15:00 |
AgentFire, насчет экстрасекс не нам с тобой судить(почему-то уверен, что по маленькому ты ходишь стоя). А за поддержку спасибо!!! И все же хотелось бы услышать мнение Михаила или AngryBadgerа на худой конец...
|
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 33 Ответов: 245 |
Профиль | Цитата | #11 | Добавлено: 16.02.09 10:58 |
Ну чтож, раскрою карты, fAndOrIn, ты практически угадал, но. На листе Excel, есть n-ное количество СпинБаттонов, которые выполняют абсолютно одинаковые действия - в зависимости от значения счетчика, скрывают или показывают ряды, а делают они это с разными диапазонами. Вся заморочка с тем, чтобы определить какой диапазон взять, мне нужно знать какой счетчик покрутили. Поэтому, по совету mc-black(с твоими дополнениями), делаю для каждого контрола так:
call HideRows(SpinButton1, Range("top1"
![]() Где top1 - именованая первая ячейка в таблице, ряды которой скрываем или открываем, от неё потом и пляшем. Вот и фсё. Возможно, все можно сделать через массив контролов, но я НЕ ЗНАЮ, как его создать(. Если кто-нибудь поможет - буду очень признателен. mc-black, fAndOrIn - спасибо за помощь. |
Номер ответа: 12 Автор ответа: ![]() ![]() Вопросов: 0 Ответов: 1 |
Профиль | Цитата | #12 | Добавлено: 17.03.09 16:43 |
Все это очень верно, но как такую вещь сделать в PowerPoint во время показа слайдов? На слайде лежит куча кнопок и надо в макросе узнать надпись на нажатой кнопке.
Пока есть только: Sub select_group() SlideShowWindows(1).View.Next End Sub |
Страница: 1 |
|