使用转义按钮关闭userform

时间:2013-11-27 11:02:23

标签: excel vba excel-vba

我有2个问题。

  1. 当我按 esc 按钮然后关闭Userform1

  2. 当我在open输入TextBox1时,Userform2应显示。同时自动清除TextBox1中的Userform1

  3. 我尝试过以下代码:

    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        If textbox1.value = "open" then
            userform2.show
            textbox1.value =""
        End If
    End Sub
    

4 个答案:

答案 0 :(得分:18)

  

使用 Esc

关闭userform1

如果您对userform没有任何控制,那么只需使用此代码

即可
Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 27 Then Unload Me
End Sub

如果你说一个TextBox和一个命令按钮,那么使用这个

Private Sub UserForm_Initialize()
    CommandButton1.Cancel = True
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 27 Then Unload Me
End Sub

Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 27 Then Unload Me
End Sub

Private Sub CommandButton1_Click()
    Unload Me
End Sub

如果您有任何其他可以关注的控件,那么您必须使用该控件的KeyPress事件,就像我对TextBox所做的那样

  

当我向textbox1输入“open”时,userform2会自动在userform1中显示清晰的textbox1。

KeyPress只会捕获一个密钥。使用Change事件来比较文本框中的内容。

Private Sub TextBox1_Change()
    If LCase(TextBox1.Value) = "open" Then
        TextBox1.Value = ""
        UserForm2.Show
    End If
End Sub

答案 1 :(得分:16)

  1. 插入新的命令按钮
  2. 将其Cancel属性切换为True
  3. 您可以将其命名为cmdClose
  4. 添加下一个代码:

    Private Sub cmdClose_Click()
    
        Unload Me
    
    End Sub
    
  5. 5.将按钮的高度和宽度设置为0

    就是这样

答案 2 :(得分:0)

如果您有一个关闭表单的按钮,只需将(取消)属性设置为 True ,这将触发(Esc)上的取消按钮。 欢呼声。

答案 3 :(得分:-3)

非常正确...如果您在用户表单上有关闭按钮并且您已为此编写代码(卸载我),则将取消属性设置为True(默认情况下为假)