Excel复选框DoubleClick事件

时间:2015-04-06 17:48:06

标签: excel vba excel-vba

我有一个电子表格,基本上是一个待办事项列表,其中的复选框标记了检查点。复选框的规则是: 1)只能先检查第一个复选框(名为checkbox_1)。 2)只能按顺序检查复选框(例如checkbox_1,checkbox_2,checkbox_3等)

最初禁用checkbox_1以外的所有复选框。单击启用的复选框后,下一个复选框将启用并禁用上一个复选框。

我现在遇到的麻烦是双击绕过复选框的enabled状态,然后继续通过事件处理程序检查复选框。

我该怎样防止这种情况?我是否需要在_BeforeDoubleClick事件处理程序中编写内容?

我的checkbox_click事件的事件处理程序在这里:

Public Sub CheckBoxClick(Optional checkboxName As String = "")
'This calls the checkbox function to create the timestamp and enable the next visible checkbox
Dim assocTime As Range
Dim callerName As String
Dim aCaller As Variant
Dim check_num As String
Dim aCheckboxes As Variant

Set aCheckboxes = common.GetSheet(1).CheckBoxes

If checkboxName <> "" Then
    callerName = checkboxName
Else
    callerName = Application.Caller
End If

aCaller = Split(callerName, "_")
check_num = aCaller(1)

Set assocTime = common.GetRange("time_" & check_num)

If assocTime.value = "" Then
    Call obj.ClickCheckBox(callerName, Constants.mypw)
End If

If check_num = aCheckboxes.count Then
    If MainSheetFunctions.HasRedCells Then
        common.MessageBox ("This batch record has cells with errors. Please address all red cells before continuing.")
        Exit Sub
    End If
End If

End Sub

obj.ClickCheckBox子将在相邻的单元格中写入当前时间,并启用下一个复选框。

感谢您的时间,

0 个答案:

没有答案