Select Case KeyCode
Case vbKeyTab
Dim Backward As Boolean
Backward = (Shift And fmShiftMask)
Call MoveFocus(Cntrl:=Cntrl, TabIndex:=TabIndex, Backward:=Backward)
Case vbKeyEnter
Select Case TypeName(Cntrl)
Case TxtBoxType
If Not (Cntrl.EnterKeyBehavior And Cntrl.MultiLine) Then
Call MoveFocus(Cntrl:=Cntrl, TabIndex:=TabIndex)
End If
Case Else
On Error Resume Next
Application.Run Sheet1.CodeName & "." & Cntrl.name & "_Click"
On Error GoTo 0
End Select
End Select
这段代码可以用于在控件之间前后切换,但我在使用回车键勾选或取消复选框控件时遇到了问题。它可以用来操作单选按钮,但是对于复选框则不起作用。如果我在 CheckBox1_Click 事件中添加 CheckBox1.Value = True
,那么它就可以被勾选为真,但自然而然地,它不能被取消为假。我尝试添加以下 IF 语句以根据当前值将其设置为 true 或 false,但什么也没有发生。
If CheckBox1.Value = True Then
CheckBox1.Value = False
Else
CheckBox1.Value = True
End If
另外需要说明的是:当我按下回车键时,如果表单控件没有任何反应,它会将活动单元格向下移动到活动列。有什么建议吗?