Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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
Excel 使用Esc关闭userform而不使用control_KeyPress()命令对每个控件执行控制_Excel_Userform_Vba - Fatal编程技术网

Excel 使用Esc关闭userform而不使用control_KeyPress()命令对每个控件执行控制

Excel 使用Esc关闭userform而不使用control_KeyPress()命令对每个控件执行控制,excel,userform,vba,Excel,Userform,Vba,在这个答案中,通过为每个可以聚焦的控件设置一个control_KeyPress()子控件,可以使用Esc关闭Excel userforms 我已经让它工作了,但是我有几个菜单,每个菜单都有一些控件。我试着将这个例程放在一个按钮上,但tab/nav返回到特定按钮并不总是很快 我正在寻找一种方法,这样我 不必为每个可以对焦的控件创建control_KeyPress()子控件 或者,可以以不同的方式实现相同的目标(使用esc关闭用户表单) 谢谢 我的想法是在表单上创建一个命令按钮,将cancel属性设

在这个答案中,通过为每个可以聚焦的控件设置一个control_KeyPress()子控件,可以使用Esc关闭Excel userforms

我已经让它工作了,但是我有几个菜单,每个菜单都有一些控件。我试着将这个例程放在一个按钮上,但tab/nav返回到特定按钮并不总是很快

我正在寻找一种方法,这样我

  • 不必为每个可以对焦的控件创建control_KeyPress()子控件
  • 或者,可以以不同的方式实现相同的目标(使用esc关闭用户表单)

  • 谢谢

    我的想法是在表单上创建一个命令按钮,将cancel属性设置为true,并将宽度和高度设置为0。将以下代码添加到“不可见”按钮

    Private Sub CommandButton1_Click()
        Hide
    End Sub
    
    将visible属性保留为true


    创建一个小按钮,例如6 x 6,使其可以在窗体的一个角落中看到,但不易被发现。将其设置为如此之小会阻止标题的显示,只会留下一个整洁的小正方形

    创建一个按钮(例如BTXX),并设置:

    • Cancel=True,以便按escape键“按下”此按钮
    • TabStop=False,以便在表单中进行tab操作不会在按钮上停止
    • Caption=“Esc”作为按钮用途的提醒
    在onclick事件中,使用:

    Private Sub BTXX_Click()
        Unload Me
    End Sub
    
    在本例中,通过设置top=0和left=0,转义按钮在窗体的左上角被“隐藏”。(见下图)


    如果您已经有一个用于关闭userform的按钮,那么只需将其cancel属性设置为true即可。然后按escape键触发,保持可单击状态,保持其加速器并保持选项卡顺序。您只能有一个Cancel=True的按钮,属性编辑器会自动处理这个问题。

    。但要做到这一点,你必须点击那个按钮取消,对吗?我试图避免使用鼠标。不,因为我将cancel属性设置为true。按Escape键将运行按钮后面的代码。或者换句话说,按Escape就像点击按钮。啊,我不知道它是这样工作的,但它确实是这样。谢谢作为使按钮高度/宽度=0的替代方法:使userform更大,将按钮拖动到正常视图之外的某个位置,然后将userform大小拖动回正常值。这将使按钮隐藏在视图之外,同时让您在出于任何原因需要时找到它。