电竞比分网-中国电竞赛事及体育赛事平台

分享

VBA系列講座(5):利用VBA設置工作表使用權(quán)限

 高高 2007-07-13

    一般保護工作表采取的方法是用EXCEL菜單中的“保護”命令,有時這尚嫌不足,比如一些機密文件根本要讓某些使用者無法看到,但又需要他來操作工作簿中的其他表,怎么辦?

可以打開VBA編輯器,打開“工程資源管理器”,雙擊該工作表,現(xiàn)在出現(xiàn)的是設置該表的屬性的編輯窗口,單擊窗口左上的下拉列表框,選擇worksheet ,這時再從該窗口右上方的列表框中選擇Active(“激活”),這時自動顯示如下的語句塊:
Private Sub Worksheet_Activate()

End Sub
在其中加入代碼:(假設用"123"作為密碼,Sheet"機密文檔"為限制權(quán)限文檔,sheet"普通文檔"為工作簿中你認為任何適合的工作表)

If Application.InputBox("請輸入操作權(quán)限密碼:") = 123 Then
    Range("A1").Select
Else
    Msgbox "密碼錯誤,即將退出!"
    Sheets("普通文檔").Select
End if

程序如下:
Private Sub Worksheet_Activate()
If Application.InputBox("請輸入操作權(quán)限密碼:") = 123 Then
    Range("A1").Select
Else
    MsgBox "密碼錯誤,即將退出!"
    Sheets("普通文檔").Select
End If
End Sub

這樣做仍有一個問題,就是越權(quán)使用者仍會看到一些文件的片段,即在提示密碼的那段時間。好,你可以這樣做,用上述方法選擇工作表的Deactivate事件,輸入以下代碼:
Sheets("機密文檔").Cells.Font.ColorIndex = 2
這段程序使得此工作表在不被激活時,所有文字為白色。然后,在第一個程序中的Range("A1").Select后插入一行,寫入以下代碼:
ActiveSheet.Cells.Font.ColorIndex = 56

這段程序,在你輸入正確密碼后,將該表所有文字轉(zhuǎn)變?yōu)樯罨疑?
完整的程序如下:

Private Sub Worksheet_Activate()
If Application.InputBox("請輸入操作權(quán)限密碼:") = 123 Then
    Range("A1").Select
    Sheets("機密文檔").Cells.Font.ColorIndex = 56
Else
    MsgBox "密碼錯誤,即將退出!"
    Sheets("普通文檔").Select
End If


    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多