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

时间:2015-03-09 17:22:37

标签: excel vba excel-vba automation

嗨我有很多张,其中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

此代码适用于单击复选框上的单元格。

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

提前致谢。

1 个答案:

答案 0 :(得分:1)

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

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

勾选复选框后,将返回列号和行号。