Страницы: 1
RSS
Перехват нажатия F2, но не для всех ячеек.
 
Как сделать так чтобы при нажатии F2 на некоторых ячейках выполнялось определённое действие, например вызов UserForm, а при нажатии F2 на остальных ячейках они переходили в режим редактирования, как будто никакого перехвата не было.
Код
Private Sub Workbook_Open()
    Application.OnKey "{F2}", "My_F2"
End Sub

Sub My_F2()
    If ActiveCell.Row >= 10 And ActiveCell.Row <= 15 And ActiveCell.Column > 2 And ActiveCell.Column < 10 Then
            F2.Show
        Else
            ' открыть ячейку (ActiveCell) на редактирование
    End If
End Sub
Не стреляйте в тапера - он играет как может.
 
Спасибо, работает!  :idea:
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
? :
Код
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Intersect(ActiveCell, [C10:I15]) Is Nothing Then
        Application.OnKey "{F2}"
    Else
        Application.OnKey "{F2}", "My_F2"
    End If
End Sub
Код
Sub My_F2()
    If ActiveCell.Row >= 10 And ActiveCell.Row <= 15 And ActiveCell.Column > 2 And ActiveCell.Column < 10 Then
        F2.Show
    End If
End Sub
 
С.М., спасибо! Именно то что нужно. Я только переделал на Worksheet_SelectionChange - мне это только на одном листе нужно.
Не стреляйте в тапера - он играет как может.
Страницы: 1
Наверх