二維碼 購物車
部落窩在線教育歡迎您!

同一Excel文件如何讓不同人查看的內(nèi)容不同?

?

作者:小花來源:部落窩教育發(fā)布時間:2020-05-26 17:35:13點擊:17990

分享到:
0
收藏    收藏人氣:1人
版權(quán)說明: 原創(chuàng)作品,禁止轉(zhuǎn)載。

編按:

哈嘍,大家好!在日常工作中,我們常需要同一文件不同權(quán)限的人打開后看到的內(nèi)容不同,怎么做呢?簡單用文件保護是無法實現(xiàn)的。這時建立一個權(quán)限表,用VBA來管理用戶和密碼,不管有多少人,每個人都可以根據(jù)自己的權(quán)限查看到不同的內(nèi)容。趕緊來看看吧!

 

提到“多人運動”,你一定以為小花一言不合就開車。你錯了!作為一個正經(jīng)的Excel教程作者,小花說的多人運動,指的是同一個Excel表格經(jīng)常供多人使用。

 

Excel中的多人運動,往往需要賦予不同的人不同的查看權(quán)限,從而做到分級保密。簡單來說,就是讓不同職位的人打開同一個文件看到的內(nèi)容是不同的。怎么做到呢?簡單的文件保護功能不能區(qū)分權(quán)限,簡單地隱藏工作表又太容易被取消,形同虛設(shè)!為此,小花深夜不睡,YY了一個VBA授權(quán)查閱套路,相信小花瓣看完一定會由衷嘆一句:666

 

 

第一步:建立權(quán)限表

 

賦予不同角色不同的查看權(quán)限是多人運動表格的重頭戲,我們通過建立權(quán)限表來實現(xiàn)這一功能。從權(quán)限表第三行開始,我們需要將工作簿中的所有工作表名稱依次填寫;而從第二列開始的每一列,則用于填寫每個角色的用戶名、密碼和對應(yīng)的權(quán)限(用是否表示)。由此,我們可以自由添加工作表和查看角色,不受初始設(shè)置的限制。詳見下表。

 

 

PS:建立權(quán)限表后,我們需要將文件保存為啟用宏的工作簿,文件類型為.xlsm

 

 

第二步:創(chuàng)建窗體

 

通過窗體驗證用戶權(quán)限是多人運動表格的門面,它讓這套表的逼格瞬間提升了好幾個檔次有木有。如此裝逼必備老少皆宜的窗體,該如何創(chuàng)建呢?

 

1. Alt+F11,或者點擊開發(fā)工具中的Visual Basic按鈕,打開VBA窗口。

 

2. 點擊【插入】【用戶窗體】,在彈出的界面中繪制兩個標(biāo)簽,分別為用戶名和密碼,同時插入兩個文本框和兩個命令按鈕(取消和確定)。具體插入方式和Excel工作表中插入形狀無異,此處不再贅述。

 

 

第三步:按鈕代碼

 

VBA代碼是這套多人運動表格的靈魂,表格之所以能夠?qū)崿F(xiàn)酷炫的分權(quán)功能,全在于這寥寥數(shù)語!所以,拿走不謝!


具體操作如下:

 

1. 雙擊窗體中的“確定”按鈕,將下述代碼粘貼到VBA代碼窗口中即可。該段代碼可以實現(xiàn)單擊“確定”按鈕,即啟動校驗用戶密碼并將對應(yīng)的表格顯示出來的功能。

 

Private Sub CommandButton1_Click()

Dim j, i As Integer

maxr = Application.CountA(Sheets("權(quán)限表").Range("A:A"))

maxc = Application.CountA(Sheets("權(quán)限表").Range("1:1"))

If TextBox1.Value = "" Then MsgBox "用戶名不能為空", vbInformation, "注意": Exit Sub

If TextBox2.Value = "" Then MsgBox "密碼名不能為空", vbInformation, "注意": Exit Sub

For i = 2 To maxc

    u = Worksheets("權(quán)限表").Cells(1, i)

    k = Worksheets("權(quán)限表").Cells(2, i)

    If TextBox1.Text = u And TextBox2.Text = k Then

    Unload Me

    Application.Visible = True

    Application.EnableCancelKey = xlInterrupt

    for j=maxr to 3 step -1

    ThisWorkbook.Activate

    If Sheets("權(quán)限表").Cells(j, i) = "" Then

    Sheets(j - 2).Visible = xlSheetVisible

    Else

    Sheets(j - 2).Visible = xlSheetVeryHidden

    End If

    Next j

    If Sheets("權(quán)限表").Visible = xlSheetVisible Then

    pw = "excelinexcel"

    Sheets("權(quán)限表").Unprotect Password = pw

    Cells.Select

    Selection.EntireColumn.Hidden = False

    End If

    Exit Sub

    End If

Next i

MsgBox "用戶名或密碼錯誤!"

End Sub

 

2.雙擊窗體中的“取消”按鈕,同樣粘貼下述VBA代碼。該段代碼功能很簡單,即退出Excel。

 

Private Sub CommandButton2_Click()

Application.DisplayAlerts = False

Unload Me

Application.Visible = True

Application.Quit

Application.EnableEvents = False

End Sub

 

3. 在兩段代碼的下方,粘貼以下VBA代碼,用于防止用戶通過關(guān)閉窗體入侵。

 

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

    If CloseMode <> 1 Then Cancel = True

End Sub

 

4. 雙擊對象窗口中的ThisWorkbook,將下方代碼粘貼到代碼窗口中去。這兩段代碼實現(xiàn)了打開工作簿即彈出窗體開始驗證,并保護和隱藏工作表行列,避免用戶通過禁用宏來越權(quán)查看。


工作簿打開事件代碼:

 

Private Sub Workbook_BeforeClose(Cancel As Boolean)

 

Application.DisplayAlerts = False

 

Sheets(1).Visible = xlSheetVisible

 

Dim sht As Worksheet

 

For Each sht In Worksheets

 

If sht.Name <> "權(quán)限表" Then

 

sht.Visible = xlSheetVeryHidden

 

Else

 

sht.Select


On Error Resume Next

 

Cells.EntireColumn.Hidden = True

 

pw = "excelinexcel"

 

sht.Protect Password = pw

 

sht.EnableSelection = xlNoSelection

 

End If

 

Next

 

Application.Visible = False

 

ThisWorkbook.Close savechanges:=True

 

End Sub


工作簿關(guān)閉事件代碼

 

Private Sub Workbook_Open()

    Application.DisplayAlerts = False

    Application.EnableCancelKey = xlDisabled

    Application.Visible = False

    UserForm1.Show

End Sub

 

5. 保護VBA工程,確保用戶無法刪除、查看或修改。

 

操作步驟:

 

點擊【工具】-VBAProject屬性】,彈出【VBAProject-工程屬性】對話框,選擇【保護】選項卡,輸入【查看工程屬性的密碼】,點擊【確定】即可。

 

 

完成以上操作步驟,一套完美的多人運動表格就搞定了,車也就開完了。此時關(guān)閉Excel再次打開即可體驗多人運動的快感,隨文附上演示作品,快拿去把玩把玩吧!最后,以一段打油詩結(jié)束今天的分享,下次再見吧!

 

多人運動有是非,

一不小心就被黑。

學(xué)它幾句VBA,

再也不怕把鍋背。

 

本文配套的練習(xí)課件請加入QQ群:1043683754下載。

Excel高手,快速提升工作效率,部落窩教育《一周Excel直通車》視頻和《Excel極速貫通班》直播課全心為你!

掃下方二維碼關(guān)注公眾號,可隨時隨地學(xué)習(xí)Excel

IMG_256

相關(guān)推薦:

Excel常用的加密和破解方式(上)職場人士最常用的excel密碼保護和破解方式,趕緊收藏?。ㄉ掀?/span>

Excel常用的加密和破解方式(下)職場人士最常用的excel密碼保護和破解方式,趕緊收藏?。ㄏ缕?/span>

Excel另類加密方式輸入密碼才顯示單元格內(nèi)容,這個表格瞬間高大上!

加密Excel《Excel有把隱形的保護鎖,你知道嗎?》