2015-04-16 96 views
0

我正在編寫一個宏,在主菜單中有一個按鈕來訪問「Admin」工作表,您可以在其中進行重要更改。我只想要某些用戶訪問此管理工作表,並且我想知道是否有辦法密碼保護查看工作表,而不僅僅是修改它。防止用戶查看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

缺點是,如果你的用戶足夠精明的進入代碼,你的密碼是純文本的。當然,如果你試圖抵禦他們,他們會進入密碼和陋習來解決密碼保護問題。 – FreeMan

+0

如果用戶足夠精明,用一個簡單的模塊,他們可能會在工作簿上造成嚴重破壞,如果他們願意的話。任何針對OP問題的VBA解決方案都不可避免地會有一個密碼,任何查看代碼的人都可能知道。 – BGeorge

+0

正如我所說... :) – FreeMan