输入密钥模拟单击不适用于复选框

时间:2016-02-16 03:35:16

标签: excel vba excel-vba checkbox

我复制并稍微修改了this post底部的代码,以允许在我创建的工作表表单上的表单控件之间进行选项卡。以下是与KeyCode = vbKeyEnter:

相关的细分
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.Value = True添加到CheckBox1_Click事件,它可以检查它是否为真,但自然不会允许它取消选中为false。我已经尝试添加以下IF语句,根据当前值将其设置为true或false,但是没有任何反应。

If CheckBox1.Value = True Then
    CheckBox1.Value = False
Else
    CheckBox1.Value = True
End If

另一个注意事项:当我按Enter键并且表单控件没有任何反应时,它会将活动单元格移动到活动列。有什么建议吗?

1 个答案:

答案 0 :(得分:4)

  

这可能是也可能不是编程问题的答案;我会让选民决定。
Q.输入密钥模拟点击不适用于复选框

你为什么要这样做?你花时间和精力故意“打破”一个工作系统。 空格键长期以来一直是用于打开和关闭复选框的键接受, Tab Shift + Tab 是用于在表单控件和Enter↵之间导航是确定的默认值。

“工作系统”是指整个Mac / Windows / Linux GUI系统以及数百万经过长期定义标准实践培训的人员。您可以将鼠标从任何称职的办公室工作人员处移开,他们的工作效率不会受到影响他们可以浏览系统和应用程序来执行他们的工作,因为系统中的所有内容,从设置视频分辨率到将工作人员的时间卡数据输入到自定义表单的工作方式相同

请Windows用户将其粘贴在第一台Mac上。他们可以使用程序并完成工作,因为绝大多数操作(尤其是应用程序基本操作的操作)都是相同的。以Mac用户为例,将它们放在Linux机器前面,您将获得相同的结果。机器及其程序的基本日常操作是相同的。

如果您打算创建一个能够完成所有培训,实践和经验并将其抛到窗外的专有系统,那么寻找工作的潜在申请人有什么意义可以获得一份充满办公室经验的简历?< / p>

使用空格键在Windows 3.0之前打开和关闭复选框。建立一个更好的捕鼠器和重新发明轮子¹有区别。

¹如果您认为维护GUI标准不值得考虑,请考虑Office 2007功能区创建的强烈反应。产生了一个完整的子行业,致力于生成带来Office 2003功能的附加组件。