Используйте поле ввода в качестве поля пароля для выбора листа VBA EXCEL - PullRequest
0 голосов
/ 11 октября 2019

Я хочу использовать поле ввода для ввода пароля для выбора определенного листа в Excel.

Вот мой код:

Sub DCAInputSelect()
    Dim myValue As Variant
    myValue = InputBox("Enter Password", "DCA Input Screen")
    Range("T6").Value = myValue
    Sheets("DCA INPUT").Select
End Sub

Я хочу перейти только клист "DCA INPUT", если вход из поля p3t3

Ответы [ 2 ]

3 голосов
/ 11 октября 2019

Просто используйте оператор if для проверки пароля p3t3.

Sub DCAInputSelect()
    Dim myValue As Variant
    myValue = InputBox("Enter Password", "DCA Input Screen")
    Range("T6").Value = myValue
    If myValue = "p3t3" Then Sheets("DCA INPUT").Select
End Sub

РЕДАКТИРОВАТЬ

Не является частью исходного вопроса, но у меня был похожийНекоторое время назад, который дает пользователям 3 попытки ввода пароля, это будет выглядеть в вашем случае.

Sub DCAInputSelect()
   Dim myValue As Variant, i As Integer, f As Integer
   i = 1
   f = 1
   Do While i <> 2
       If f = 4 Then Exit Do
       myValue = InputBox("Enter Password, attempt no " & f & " of 3", "DCA Input Screen")
       Range("A1").Value = myValue
       If myValue = "p3t3" Then
           Sheets("DCA INPUT").Select
           i = 2
       Else
           f = f + 1
       End If
   Loop
End Sub
1 голос
/ 11 октября 2019

вы можете попробовать это:

Sub DCAInputSelect()
    Const pwd As String = "p3t3"
    Dim myValue As Variant

    myValue = InputBox("Enter Password [blank to abort]", "DCA Input Screen")
    Do While myValue <> pwd And myValue <> vbNullString
        MsgBox "Invalid Password", vbCritical
        myValue = InputBox("Enter Password [blank to abort]", "DCA Input Screen")
    Loop
    If myValue = vbNullString Then Exit Sub

    Range("T6").value = myValue
    Sheets("DCA INPUT").Select
End Sub
...