Книга закрывается, если пароли были неверными - PullRequest
0 голосов
/ 30 октября 2019

Если пользователь вводит рабочий пароль, я хочу закрыть книгу без сохранения. Тем не менее, код, который я пытаюсь, не работает.

Sub Unhide()

mypass = Application.InputBox( _
prompt:="Enter password - In case of wrong password please close the file 
and try again")


If mypass = "BJE" Then Sheets("Overview").Visible = True
If mypass = "BFL" Then Sheets("BFL").Visible = True
If mypass = "EBR" Then Sheets("EBR").Visible = True
If mypass = "DME" Then Sheets("DME").Visible = True
If mypass = "AJA" Then Sheets("AJA").Visible = True
If mypass = "RLC" Then Sheets("RLC").Visible = True
If mypass = "JMK" Then Sheets("JMK").Visible = True
If mypass = "AXB" Then Sheets("AXB").Visible = True
If mypass = "JIK" Then Sheets("JIK").Visible = True
If mypass = "KKO" Then Sheets("KKO").Visible = True

If mypass <> "BJE" Or "BFL" Or "EBR" Or "DME" Or "AJA" Or "RLC" Or "JMK" 
Or "AXB" Or "JIK" Or "KKO" Then ThisWorkbook.Close


End Sub

1 Ответ

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

Вам нужно повторить mypass <> для каждого String, который вы проверяете.

If mypass <> "BJE" Or mypass <> "BFL" Or mypass <> "EBR"...

Это громоздко. Используйте Select Case и Case Else, чтобы закрыть.

Select Case myPass
    Case "BJE"
         ThisWorkbook.Sheets("Overview").Visible = True ' Or use the sheet code name
    Case "BFL"
         ThisWorkbook.Sheets("BFL").Visible = True

    ... ' and so on

    Case Else
         ThisWorkbook.Close ' though as pointed out, this is a pretty harsh user experience
End Select
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...