输入文本框密码后如何启用文本框内容?

时间:2017-10-13 11:53:44

标签: excel vba excel-vba

我正在尝试在禁用的文本框Txttravel上触发事件GotFocus()。我希望如果我们想要编辑这个文本框 - 我们必须输入密码,然后启用文本框,我们就可以编辑它了。帮助实现它。我试过下面的代码。但是当文本框处于禁用状态时,这并不是一种琐事。

Private Sub Txttravel_GotFocus()

Dim Password As String

Password = InputBox("Enter password to edit this field:", "Password")
    If Password = "Cloudbu@hcl" Then
    Txttravel.Enabled = True

   Me.Range("A1").Select

   End If
   Txttravel.Enabled = False

End Sub

1 个答案:

答案 0 :(得分:2)

首先,只有当控件可见并启用时,才能获得焦点,如Microsoft here所述。

备选方案1:选择其他控件

作为替代方案,如果密码错误且未禁用文本框,我建议您只在表单中选择其他控件。

尝试将代码更改为此

Private Sub Txttravel_Enter()
    Dim Password As String

    Password = InputBox("Enter password to edit this field:", "Password")

    If Password = "Cloudbu@hcl" Then
        Txttravel.SetFocus
    Else
        'Select another control in your form here
        TextBox2.SetFocus
    End If
End Sub

@KostasK提出的备选方案2:使用Locked属性

正如KostasK在评论中提出的那样,你可以锁定文本框。

Private Sub Txttravel_Enter()
    Dim Password As String

    Password = InputBox("Enter password to edit this field:", "Password")

    If Password = "Cloudbu@hcl" Then
        Txttravel.Locked = False
    Else
        Txttravel.Locked = True
    End If
End Sub

注意:请务必将此代码放在表单中:表格上的右侧clic>查看代码