Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Какая ф-я обрабатывает двойной клик?

411
31 января 2008 года
Serzh
136 / / 09.07.2003
Какая функция обрабатывает двойной клик по произвольной ячейке активного листа Excel?
В частности при двойном клике на защищенной ячейке "кто-то" ругается соответствующими словами о невозможности активизировать эту ячейку.
(т.е. войти в режим ее редактирования). В то же время одиночным кликом позиционироваться в этой ячейке можно...
251
31 января 2008 года
SkyMаn
1.7K / / 31.07.2007
 
Код:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
411
04 февраля 2008 года
Serzh
136 / / 09.07.2003
Огромный респект, все заработало!
Но есть еще один вопросик:
При ручной установке защиты листа можно снять крыжик в опции разрешения позиционирования в защищенных ячейках, тем самым запретив такое позиционирование. А как это сделать программно?
В описании команды Protect вразумительного ответа не нашел...
251
04 февраля 2008 года
SkyMаn
1.7K / / 31.07.2007
Секрет: если вы не знаете или не уверены, как сделать что-то программно, то делайте так:
1. Запустите запись макроса
2. Сделайте вручную то, что бы вы хотели сделать программно (например, снимите защиту)
3. Выключите запись макроса
4. Перейдите в редактор сценариев Visual Basic.
5. Радуйтесь увиденным.
411
05 февраля 2008 года
Serzh
136 / / 09.07.2003
Вообще-то я давно уже разочаровался в описанном ниже способе получения информации по программированию. Далеко не всегда таким образом можно получить ответ вообще, а оптимальный - тем паче!

Но в данном конкретном случае Ваш совет пригодился, СПАСИБО!

Хотя более привычно было бы обращение к справочнику, а там должна быть ссылка типа "смотри также", если в описании искомой команды (функции, события) информации не достаточно... Ну да, бог с ними, с мелкомягкими, пусть это будет на их совести.

А к слову сказанному, еще вопросик "на засыпку"...
Существует ли способ программного управления событием изменения значения в ячейке без предварительного изменения самого этого значения? Грубо говоря, можно ли вызвать программно процедуру (или ее аналог) типа
Worksheet_Change(ByVal oT As Range) таким образом, чтобы при этом автоматически отработали другие события, связанные с изменением значения в ячейке (например, TextBox1_Change()) ?
В частности, параметр lC в процедуре
Worksheet_BeforeDoubleClick(ByVal oT As Range, lC As Boolean)
позволяет управлять исполнением стандартной обработки двойного клика. А есть ли что то аналогичное в системе управления событиями Excel или подобное в процедуре
Worksheet_Change(ByVal oT As Range) ?
251
05 февраля 2008 года
SkyMаn
1.7K / / 31.07.2007
многабукаф.. ЧТо именно вам нужно? Конкретней - чего требуется достичь?
411
06 февраля 2008 года
Serzh
136 / / 09.07.2003
Цитата: SkyM@n
многабукаф.. ЧТо именно вам нужно? Конкретней - чего требуется достичь?



Да просто вроде сказано...
Надо перехватывать попытку изменения данных в ячейке до того, как выполнится стандартная обработка и далее уже решать самому продолжать стандартную обработку или ограничиться нестандартной.

Не знаю, застали вы или нет времена классического (не ООП) программирования, например систему CLIPPER... Так вот там была такая возможность с использованием кодоблока When в конструкции @...GET.

251
06 февраля 2008 года
SkyMаn
1.7K / / 31.07.2007
Не выйдет средствами VBA. Что дано, то дано. Можно попробовать аттачить ивенты через системные АПИ, но вряд ли из это выйдет что-либо путное.
Может, можно решить задачу иным путем?

ЗЫ. Еще где-то 5.25-дюймовки с надписью Clipper валяются...
411
07 февраля 2008 года
Serzh
136 / / 09.07.2003
И на том, спасибо!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог