2009-09-24 2 views

ответ

4

Найдено решение:

Сделать именованный диапазон для ячеек, которые вы хотите, чтобы захватить clickevent

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    Application.EnableEvents = False 
    Application.ActiveSheet.Cells(1, 1).Value = Target.Address 
    If Not Intersect(Target, Range("MyNamedRange")) Is Nothing Then 
     ' do your stuff 
     Range("A1").Select 
    Endif 
    Application.EnableEvents = True 
End Sub 
4

Вы можете привязать к ячейке двойной щелчок.

Открыть VBA, Гото рабочий лист, который вы хотите проволоки до события Выберите WorkSheet в раскрывающемся меню в левом верхнем углу и BeforeDoubleClick в правом верхнем углу чеке Target.Address равно адрес ячейки вы заботитесь и вызовите функцию, которую вы хотите.

Что-то вроде этого:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    If Target.Address(True, True, xlA1) = "$A$1" Then 
     Call MyDemo 
    End If 
End Sub 

Private Sub MyDemo() 
    MsgBox "Hello" 
End Sub 
+0

двойной щелчок достаточно хорошо для меня. отличный ответ. Могут ли функции beforeX фактически отменять обработку событий по умолчанию? – Cheekysoft

+0

думаю. Установите Отмена на истину, я верю, но никогда не пробовал! – JDunkerley

+0

Хехе. избили меня до 30 секунд. Просто найти в http://msdn.microsoft.com/en-us/library/aa220840%28office.11%29.aspx. Отмена = True работает просто отлично. – Cheekysoft

Смежные вопросы