一般保護工作表采取的方法是用EXCEL菜單中的“保護”命令,有時(shí)這尚嫌不足,比如一些機密文件根本要讓某些使用者無(wú)法看到,但又需要他來(lái)操作工作簿中的其他表,怎么辦?
可以打開(kāi)VBA編輯器,打開(kāi)“工程資源管理器”,雙擊該工作表,現在出現的是設置該表的屬性的編輯窗口,單擊窗口左上的下拉列表框,選擇worksheet ,這時(shí)再從該窗口右上方的列表框中選擇Active(“激活”),這時(shí)自動(dòng)顯示如下的語(yǔ)句塊:
Private Sub Worksheet_Activate()
End Sub
在其中加入代碼:(假設用"123"作為密碼,Sheet"機密文檔"為限制權限文檔,sheet"普通文檔"為工作簿中你認為任何適合的工作表)
If Application.InputBox("請輸入操作權限密碼:") = 123 Then
Range("A1").Select
Else
Msgbox "密碼錯誤,即將退出!"
Sheets("普通文檔").Select
End if
程序如下:
Private Sub Worksheet_Activate()
If Application.InputBox("請輸入操作權限密碼:") = 123 Then
Range("A1").Select
Else
MsgBox "密碼錯誤,即將退出!"
Sheets("普通文檔").Select
End If
End Sub
這樣做仍有一個(gè)問(wèn)題,就是越權使用者仍會(huì )看到一些文件的片段,即在提示密碼的那段時(shí)間。好,你可以這樣做,用上述方法選擇工作表的Deactivate事件,輸入以下代碼:
Sheets("機密文檔").Cells.Font.ColorIndex = 2
這段程序使得此工作表在不被激活時(shí),所有文字為白色。然后,在第一個(gè)程序中的Range("A1").Select后插入一行,寫(xiě)入以下代碼:
ActiveSheet.Cells.Font.ColorIndex = 56
這段程序,在你輸入正確密碼后,將該表所有文字轉變?yōu)樯罨疑?div style="height:15px;">
完整的程序如下:
Private Sub Worksheet_Activate()
If Application.InputBox("請輸入操作權限密碼:") = 123 Then
Range("A1").Select
Sheets("機密文檔").Cells.Font.ColorIndex = 56
Else
MsgBox "密碼錯誤,即將退出!"
Sheets("普通文檔").Select
End If