2015-04-16 5 views
0

Я кодирую макрос, где в главном меню есть кнопка для доступа к листу «Админ», где можно внести важные изменения. Я хочу, чтобы только определенные пользователи получили доступ к этому листу администратора, и мне интересно, есть ли способ защитить пароль , просмотрев рабочий лист, а не только его модификацию.Запретить пользователям просматривать рабочий лист Excel

ответ

2

Вы могли бы сделать что-то вроде этого:

Private Sub Workbook_SheetActivate(ByVal Sh As Object) 
'Update 20140925 
Dim xSheetName As String 
xSheetName = "Sheet1" 
If Application.ActiveSheet.Name = xSheetName Then 
    Application.EnableEvents = False 
    Application.ActiveSheet.Visible = False 
    xTitleId = "KutoolsforExcel" 
    response = Application.InputBox("Password", xTitleId, "", Type:=2) 
    If response = "123456" Then 
     Application.Sheets(xSheetName).Visible = True 
     Application.Sheets(xSheetName).Select 
    End If 
End If 
Application.Sheets(xSheetName).Visible = True 
Application.EnableEvents = True 
End Sub 

Это будет фактически создать защищенный паролем рабочий лист, который будет виден только если пароль был правилен. Ответ получен от http://www.extendoffice.com/documents/excel/2134-excel-password-protect-hidden-sheet.html#a1

+0

Недостаток в том, что если ваши пользователи достаточно сообразительны, чтобы войти в код, ваш пароль будет в текстовом формате. Конечно, если вы пытаетесь защитить от них, они все равно попадут в код и muck, чтобы обойти защиту паролем. – FreeMan

+0

Если пользователь достаточно сообразителен, с простым модулем они могут нанести ущерб книге, если они того пожелают. Любое решение VBA для проблемы OP неизбежно имело бы пароль, который мог бы понять любой, кто просматривал код. – BGeorge

+0

Как я уже сказал ... :) – FreeMan

Смежные вопросы