0 / 0 / 0
Регистрация: 01.03.2007
Сообщений: 5
|
|
1 | |
Excel Как определить нажатую кнопку?01.03.2007, 14:00. Показов 21185. Ответов 8
Метки нет (Все метки)
На рабочем листе Excel (не на форме) расположено N-ое количество управляющих элементов "CommandButton", поставленных на лист из Панели инструментов "Элементы управления", т.е. как OLEObject. Как можно определить, какая именно CommandButton была нажата во время работы, т.е. либо в переменную, либо в произвольную ячейку записать уникальный идентификатор нажатой кнопки. Решение с назначением кнопке макроса, в котором по событию Click в произвольную ячейку будет записываться, например, свойство Name кнопки НЕ подходит (не универсально, не гибко, слишком много кнопок).
0
|
01.03.2007, 14:00 | |
Ответы с готовыми решениями:
8
Как в коде определить, какую кнопку нажал юзер на форме Подскажите пожалуйста как на листе при нажатии на кнопку определить в какой ячейке она находится? Как получить ссылку на нажатую кнопку? Как нажатую кнопку не нажатой сделать? |
2 / 2 / 0
Регистрация: 20.11.2011
Сообщений: 54
|
|
01.03.2007, 20:16 | 2 |
Доброго времени суток!
CommandButton.Index не подойдет? С уважением, Анатолий
0
|
0 / 0 / 0
Регистрация: 01.03.2007
Сообщений: 5
|
|||||||||||
02.03.2007, 00:44 [ТС] | 3 | ||||||||||
Я не силен в программировании на VBA, но если имеется в виду конструкция:
Compile error: Variable not defined VB считает в данном случае, что CommandButton - это Variable. Работает вариант:
0
|
rank1
|
||||||
03.03.2007, 17:27 | 4 | |||||
Один из вариантов решения:
Запускаем макрос Gen, в ворде появляется код сгенеренных N хендлеров событий от кнопок. Вставляем сгенеренный код в вба модуль и теперь все вызовы от кнопок перенаправляются в одну процедуру.
|
90 / 37 / 14
Регистрация: 03.11.2010
Сообщений: 429
|
|
04.03.2007, 00:24 | 5 |
Можно воспользоватся кнопкой с панели "Формы" и обработать нажатие в одном макросе:
MsgBox CStr(Application.Caller) Можно создать массив в Class Modules См. пример для уже созданных в ручную кнопок.
0
|
0 / 0 / 0
Регистрация: 01.03.2007
Сообщений: 5
|
|||||||||||
04.03.2007, 01:01 [ТС] | 6 | ||||||||||
rank1
Спасибо, конечно, за ответ, но это не соответствует условиям задачи. Используя Ваш пример, это должно выглядеть примерно так:
0
|
0 / 0 / 0
Регистрация: 01.03.2007
Сообщений: 5
|
|
04.03.2007, 01:32 [ТС] | 7 |
Димит
<font color="#FF0000 CommandButton_Array.zip</font> - это то, что нужно. Как все, оказывается, просто, когда знаешь. Не поверишь, но я больше недели перекапывал интернет в поисках ответа и все бестолку. Огромное человеческое спасибо! Напоследок, растолкуй, пожалуйста, что означает: С уважением, Олег.
0
|
90 / 37 / 14
Регистрация: 03.11.2010
Сообщений: 429
|
|
04.03.2007, 06:11 | 8 |
В AddMassiv создаётся массив переменных ( Bt() ). Все переменные обнуляются при работе в редакторе. По этому придётся заново его создавать.
При добавлении кнопок на лист, добавленные кнопки не войдут в массив, т.е. опять придётся запустить макрос AddMassiv.
0
|
0 / 0 / 0
Регистрация: 01.03.2007
Сообщений: 5
|
|
04.03.2007, 18:13 [ТС] | 9 |
Спасибо за разъяснение. Вопросов больше нет.
Думаю, на этом тему можно закрыть.
0
|
04.03.2007, 18:13 | |
04.03.2007, 18:13 | |
Помогаю со студенческими работами здесь
9
Toggle Button - Как правильно выделить нажатую кнопку цветом. Стилями или? Проверка на нажатую кнопку не могу проверить нажатую кнопку Получить текущую нажатую кнопку Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |