双击工作表中的任何单元格运行宏

时间:2019-03-21 14:13:16

标签: excel vba

当我双击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 个答案:

答案 0 :(得分:3)

右键单击工作表标签,然后选择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

答案 1 :(得分:2)

尝试使用:

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