Запуск макроса при двойном щелчке по любой ячейке на листе - PullRequest
0 голосов
/ 21 марта 2019

Я хочу запустить обычный макрос, когда дважды щелкаю по любой ячейке моего листа Excel. Скажем, когда я дважды щелкну по ячейке A20, мой макрос захватит номер столбца и номер строки.

И для этого пересечения столбца и строки перейдите к следующему шагу. Макрос, как показано ниже, например:

Sub Trial()    
    Dim x, y As Integer

    x = ActiveCell.Column
    y = ActiveCell.Row

    Dim input1, input2 As String

    input1 = Range(x & "2").Value
    input2 = Range("A" & y).Value
End Sub

Результат будет использован в другом макросе для вызова SQL-запроса -

Select  Sum(value)
From    Table
Where
    column1 = 'input1' and
    column2 = 'input2'

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

overview

Ответы [ 2 ]

3 голосов
/ 21 марта 2019

Щелкните правой кнопкой мыши вкладку листа и выберите View Code.

Выберите Worksheet из первого раскрывающегося списка (Объект) в верхней части окна и выберите BeforeDoubleClick из второго раскрывающегося списка (Процедура). Это создает заглушку процедуры:

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

End Sub

Именно здесь вы можете написать свой код. Вы можете установить Target, чтобы отвечать только на определенный диапазон ячеек, и использовать Cancel, чтобы отменить любое поведение двойного щелчка по умолчанию.

Например, следующее подтвердит, какой диапазон был дважды нажат:

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

End Sub
2 голосов
/ 21 марта 2019

Попробуйте использовать:

Option Explicit

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

    MsgBox "Row:" & Target.Row & vbNewLine & "Column:" & Target.Column

End Sub

Изображение:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...