Excel-VBA установить проход для каждой вкладки страницы - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь добавить пароль к каждой странице книги, поэтому, когда я нажимаю одну вкладку страницы, я получаю поле ввода, запрашивающее его пропуск.Каждая страница имеет уникальный пароль.Как мне это сделать?Я пытался написать этот код на vba ThisWorkbook, но он ничего не делает:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim MySheets As String, Response As String
MySheet = "Sheet1"
If ActiveSheet.Name = inicio Then
ActiveSheet.Visible = False
Response = InputBox("Enter password to view sheet")
    If Response = "abc" Then
        Sheets(MySheet).Visible = True
        Application.EnableEvents = False
        Sheets(MySheet).Select
        Application.EnableEvents = True
    End If
End If
Sheets(MySheet).Visible = True
End Sub

Заранее спасибо!

1 Ответ

0 голосов
/ 30 мая 2018

Используйте Option Explicit.Тогда вы заметите, что inicio это переменная, а не имя.В целом, ваш код должен работать, если вы пишете "inicio".

или что-то в этом роде, если вы игнорируете inicio и используете строковую переменную MySheet, которую вы уже объявили:

Option Explicit

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

    Dim MySheet As String, Response As String
    MySheet = "Sheet1"

    If ActiveSheet.Name = MySheet Then
        ActiveSheet.Visible = False
        Response = InputBox("Enter password to view sheet")
        If Response = "abc" Then
            Sheets(MySheet).Visible = True
            Application.EnableEvents = False
            Sheets(MySheet).Select
            Application.EnableEvents = True
        End If
    End If

End Sub

Или так, если вы хотите сделать это немного меньше, используя параметр Sh, а не ActiveSheet:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

    Dim mySheet As String: mySheet = "Sheet1"
    Dim response As String

    If Sh.Name = mySheet Then
        response = InputBox("Enter password to view sheet")
        Sh.Visible = CBool(response = "abc")
    End If

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...