如何查找单击工作簿上特定单元格上的复选框事件。

How to look for click on the checkbox event on a specific cell on the workbook.

您好,我有很多工作表,其中我在列 AI 上有很多单元格,其中有复选框。

我希望在单击该列上的复选框时有一个事件处理程序 A1。我试过这段代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Selection.Count = 1 Then
        If Not Intersect(Target, Range("AI")) Is Nothing Then
            MsgBox "Hello World"
        End If
    End If
End Sub

此代码适用于单击单元格而不是复选框。

如何寻找点击复选框?并且还获取被单击的复选框的行号。

提前致谢。

您必须为复选框分配一个宏。当您勾选已分配宏的复选框时,以下代码将 运行。

Option Explicit
Public Sub check_box_ticked()
    Dim cbox As Integer
    Dim wb As Workbook, ws As Worksheet, checkb as Shape
    Set wb = ThisWorkbook
    Set ws = wb.Sheets("Sheet1")
    Set checkb = ws.Shapes("Check Box 1")
    cbox = ws.CheckBoxes("Check Box 1").Value

    If cbox = 1 Then 'if message box is ticked then run code
        ' You can also use BottomRightCell
        MsgBox ("Row: " & checkb.TopLeftCell.Row & "Column: " & checkb.TopLeftCell.Column)
    End If
End Sub

这将 return 勾选复选框时的列号和行号。