昨天有學(xué)員問(wèn)道:如何將Excel中的工作表,每個(gè)工作表設(shè)置不一樣的密碼,只有輸入密碼,才能看到對(duì)應(yīng)的數(shù)據(jù),防止數(shù)據(jù)泄露。
想要實(shí)現(xiàn)這樣的效果,通過(guò)Excel中的默認(rèn)功能是不能行,只能通過(guò)VBA代碼了,我們來(lái)具體演示下
一、登錄界面
首先我們需要新建一個(gè)sheet,并且將其的工作表名稱名稱為:登錄界面,之后就需要在當(dāng)前的窗口中來(lái)插入控件了
首先點(diǎn)擊【開(kāi)發(fā)工具】然后點(diǎn)擊找到【文本框】來(lái)創(chuàng)建一個(gè)文本框,之后點(diǎn)擊【文本框】點(diǎn)擊鼠標(biāo)右鍵找到【姓名】將【名稱】更改為【txtPassword】
隨后繼續(xù)點(diǎn)擊插入控件,來(lái)插入一個(gè)按鈕,插入按鈕后也是點(diǎn)擊控件,點(diǎn)擊右鍵找到【屬性】做2處修改,【名稱】更改為【btnUnlock】然后將【Caption】更改為【確定】最后調(diào)整下大小,放在一個(gè)合適的位置即可
二、代碼1
復(fù)制下方代碼,按下ALT+F11打開(kāi)VBA窗口,之后在右側(cè)的窗口中找到【ThisWorkbook】,雙擊它,將代碼粘貼到里面即可
Private Sub Workbook_Open()
' 工作簿打開(kāi)時(shí)隱藏所有數(shù)據(jù)表,只顯示登錄界面
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "登錄界面" Then ws.Visible = xlSheetVeryHidden
Next ws
Sheets("登錄界面").Visible = xlSheetVisible
End Sub
三、代碼2
點(diǎn)擊剛才創(chuàng)建的【文本框】然后點(diǎn)擊鼠標(biāo)右鍵,找到【查看代碼】將下面的代碼粘貼到代碼區(qū)域即可
密碼與工作表的名稱需要根據(jù)自己的實(shí)際數(shù)據(jù)修改,在下面的代碼中,左側(cè)的是密碼,右側(cè)的是工作表名稱,只需修改雙引號(hào)中的內(nèi)容為自己的數(shù)據(jù)即可
最后將文件的格式另存為XLSM格式,保存文件,關(guān)閉文件,重新打開(kāi)即可,到此設(shè)置完畢
Private Sub btnUnlock_Click()
Dim targetSheet As String
Dim pwd As String
Dim sheetFound As Boolean
pwd = txtPassword.Text
sheetFound = False
' 定義工作表密碼映射(實(shí)際使用中建議加密存儲(chǔ))
Select Case pwd
Case "pass1": targetSheet = "財(cái)務(wù)部" ' 確保名稱與實(shí)際表名一致
Case "pass2": targetSheet = "行政部"
Case "pass3": targetSheet = "人事部"
Case "pass4": targetSheet = "市場(chǎng)部"
Case "pass5": targetSheet = "總經(jīng)辦"
Case Else
MsgBox "密碼錯(cuò)誤!", vbCritical
Exit Sub
End Select
' 檢查工作表是否存在
On Error Resume Next
sheetFound = (Not Sheets(targetSheet) Is Nothing)
On Error GoTo 0
If sheetFound Then
' 顯示目標(biāo)工作表
Sheets(targetSheet).Visible = xlSheetVisible
Sheets(targetSheet).Activate
' 清空密碼框
txtPassword.Text = ""
Else
MsgBox "錯(cuò)誤:找不到工作表 '" & targetSheet & "'!", vbCritical
End If
End Sub
以上就是今天分享的全部?jī)?nèi)容,大家可以試一下,操作還是比較簡(jiǎn)單的~
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.