Страница 1 из 1

Обработка событий на рабочем листе

Добавлено: 01 сен 2004, 09:36
morgacev
Дорое время суток!
Подскажите пожалуйста как можно навесить выполнение процедуры на выделение ячейки на листе.
Необходимо для сортировки в табличке т.е. клацнул по полю в шапке и табличка сортируется.

Спасибо,
Моргачев Александр.

Добавлено: 02 сен 2004, 01:16
Naeel Maqsudov
Можно, конечно, и на смену выделения ячейки, но несомненно лучше делать это на двойной щелчок, так как смена выделения будет срабатывать и при перемещении табличного курсора стрелками.

В модуле того самого листа на объект Worksheet добавьте нужный обработчик:
SelectionChange - На смену выделения
BeforeDoubleClick - на двойной щелчок

На всякий случай, немного о том, как добавляется обработчик:
Из оукна проекта откроем модуль листа Лист1 (или ка он там называется).
Над текстом модуля выше есть 2 поля со списком.
В левом выберем объект Worksheet а в правом название события BeforeDoubleClick.
Получится:

Код: Выделить всё

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub
Чтобы узнать, какую ячейку пощелкали будем использовать параметр Target, а в конце работы сделаем Cancel=true, чтобы не происходило то, что обычно происходит при двойном щелчке (а происходило только наше действие)

Код: Выделить всё

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Select Case Target.Address
    Case "$A$1"
      range(...).Sort ...
      Cancel = True
    Case "$A$2"
      range(...).Sort ...
      Cancel = True
  End Select
End Sub

Добавлено: 02 сен 2004, 01:21
Naeel Maqsudov
Заголовок сообщения: VBA&Excel
morgacev, Вам замечание: "Неподходящее название темы". Здесь более половины сообщений являются сообщениями по теме VBA&Excel.

Тема была переименована.