Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 输入“模拟关键点”并单击“不工作”复选框_Vba_Excel_Checkbox - Fatal编程技术网

Vba 输入“模拟关键点”并单击“不工作”复选框

Vba 输入“模拟关键点”并单击“不工作”复选框,vba,excel,checkbox,Vba,Excel,Checkbox,我复制并稍微修改了在的底部找到的代码,以允许在我创建的工作表表单上的表单控件之间进行选项卡切换。以下是与KeyCode=vbKeyEnter相关的段: Select Case KeyCode Case vbKeyTab Dim Backward As Boolean Backward = (Shift And fmShiftMask) Call MoveFocus(Cntrl:=Cntrl, TabIndex:=TabIndex, Backward:=Backward)

我复制并稍微修改了在的底部找到的代码,以允许在我创建的工作表表单上的表单控件之间进行选项卡切换。以下是与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
该代码可以在控件之间前后切换。但是,我在使用enter键选中和取消选中复选框控件时遇到问题。它适用于选项按钮,但不适用于复选框。如果我将
CheckBox1.Value=True
添加到CheckBox1\u Click事件中,它可以检查为True,但自然不允许取消选中为false。我尝试添加下面的IF语句,根据当前值将其设置为true或false,但是什么也没有发生

If CheckBox1.Value = True Then
    CheckBox1.Value = False
Else
    CheckBox1.Value = True
End If
另一个注意事项:当我按enter键时,表单控件没有任何变化,它会将活动单元格向下移动到活动列。有什么建议吗

这可能是也可能不是编程问题的答案;我会让选民来决定。
Q.输入键,然后单击“不工作”复选框

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

我所说的“工作系统”是指整个Mac/Windows/Linux GUI系统,以及数百万接受过长期标准实践培训的人员。你可以把鼠标从任何有能力的上班族手中拿走,他们的工作效率就不会受到影响。他们可以在系统和应用程序中导航以执行他们的工作,因为系统中从设置视频分辨率到将工人的考勤卡数据键入自定义表单的所有操作都是以相同的方式进行的

拿一个Windows用户,把他们粘在他们的第一台Mac电脑前。他们可以使用程序并完成工作,因为绝大多数操作(尤其是应用程序的基本操作)都是相同的。把一个Mac用户放在Linux机器前,你会得到同样的结果。机器及其程序的基本日常操作是相同的

如果你打算创建一个专有系统,将他们所有的培训、实践和经验都纳入其中,并将其扔出窗外,那么,任何想要找工作的潜在申请人都要有一份充满办公室经验的简历,这有什么意义呢

使用空格键切换复选框的时间早于Windows 3.0。制造更好的捕鼠器和重新发明轮子之间有区别



< P> >如果你不认为维护GUI标准是值得努力的,考虑Office 2007色带产生的反弹。整个子行业都致力于生产能够为Office 2003带来功能的附加组件。

空格键一直是切换复选框的公认方法。你为什么要重写Windows GUI系统?我想我不知道空格键是复选框切换(现在还是有点绿色)。另外,我正在为请求的表单创建表单的人——用左手来制表,用右手在数字键盘上键入数字/输入。我会确保spacebar为我工作,并问他这是否足够。如果没有,有没有办法让它与enter一起工作?谢谢你的帮助,Jeeped。
如果KeyCode=13,那么CheckBox1.Value=not CheckBox1.Value
按需要工作……我觉得构建一个用户表单来处理这个数据输入任务会容易得多。我不同意你的观点,并计划继续让空格键发挥它的魔力。如果我知道空格键是标准的,我就不会提出这个问题了。我从未接受过正式的excel培训,也从未注意到这一点。可能不值得花时间仔细分析,但在这一点上,我只是有点好奇,如果将代码设置为模拟一次单击,并且单击确实起作用,为什么它不起作用。是不是同样的内部进程允许spacebar工作,并设置为阻止这一点以保持其设计意图?tbh,我没有认真研究您提供的代码,但出于所有意图和目的,如果您非常想重定向,您完全可以重定向任何内容;即使您必须一路截取通过Windows内核消息泵传递的消息。[tab]和[shift]+[tab]导航应该是内置的。如果无法正常工作,则需要修改表单控件的Z顺序。稍后我可能会将其视为一个智力练习,但我需要时间来构建一个“测试台”用户表单,而我目前还没有。一个被证明是关键的注意事项是表单控件直接位于工作表上,而不是在用户表单或框架内。我了解到,将它们放在一个框架内可能会允许我设置选项卡索引顺序。然而,我已经有了超过60个控件,并试图找到一种方法来在一个框架中重建整个表单。仔细阅读,它与你的预期背道而驰。