Получить объект листа Excel под мышкой - PullRequest
1 голос
/ 04 ноября 2010

Есть ли способ получить объект под мышкой в ​​листе Excel (не в форме).

Причина в том, что у меня есть несколько диаграмм и некоторые фигуры на них.Когда я щелкаю форму на конкретном графике, запускается макрос, что-то делает с текущим графиком (ActiveChart).Однако это работает, только если диаграмма активирована до нажатия на нее фигуры.Если щелкнуть фигуру без активации диаграммы, ActiveChart - это ничего.

Итак, мне нужен какой-то способ, чтобы получить объект / диаграмму / ячейку, находящуюся под мышью.не может быть щелчка или события мыши.Установка одного на всех графиках У меня также есть та же проблема, что и описанная.

Я также не выяснил, как узнать, какая фигура была нажата (поскольку макрос _Click не имеет никаких параметров).E

Спасибо.

Ответы [ 2 ]

2 голосов
/ 06 ноября 2010

Вы можете попробовать сделать все ваши имена фигур уникальными и включить в них имя диаграммы.

Затем вы можете использовать Application.Caller в макросе, обрабатывающем щелчок, чтобы получить имя фигуры.Отсюда вы можете разобрать имя графика.

Тим

0 голосов
/ 04 ноября 2010

Нажатие на диаграмму активирует родительский лист и книгу. Таким образом, вы можете использовать что-то вроде
ActiveSheet.Charts(0) если у вас есть только 1 график на листе.
Чтобы выяснить, что было нажато, вы можете попросить вызывающего абонента указать его имя / идентификатор в качестве аргумента (здесь его нельзя использовать) или задать глобальную переменную (не слишком красиво, но можно использовать в контексте одного пользователя / одного процесса).

...