昨天有學員問道:如何將Excel中的工作表,每個工作表設置不一樣的密碼,只有輸入密碼,才能看到對應的數據,防止數據泄露。
想要實現這樣的效果,通過Excel中的默認功能是不能行,只能通過VBA代碼了,我們來具體演示下
一、登錄界面
首先我們需要新建一個sheet,并且將其的工作表名稱名稱為:登錄界面,之后就需要在當前的窗口中來插入控件了
首先點擊【開發工具】然后點擊找到【文本框】來創建一個文本框,之后點擊【文本框】點擊鼠標右鍵找到【姓名】將【名稱】更改為【txtPassword】
![]()
隨后繼續點擊插入控件,來插入一個按鈕,插入按鈕后也是點擊控件,點擊右鍵找到【屬性】做2處修改,【名稱】更改為【btnUnlock】然后將【Caption】更改為【確定】最后調整下大小,放在一個合適的位置即可
![]()
二、代碼1
復制下方代碼,按下ALT+F11打開VBA窗口,之后在右側的窗口中找到【ThisWorkbook】,雙擊它,將代碼粘貼到里面即可
Private Sub Workbook_Open()
' 工作簿打開時隱藏所有數據表,只顯示登錄界面
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
點擊剛才創建的【文本框】然后點擊鼠標右鍵,找到【查看代碼】將下面的代碼粘貼到代碼區域即可
密碼與工作表的名稱需要根據自己的實際數據修改,在下面的代碼中,左側的是密碼,右側的是工作表名稱,只需修改雙引號中的內容為自己的數據即可
最后將文件的格式另存為XLSM格式,保存文件,關閉文件,重新打開即可,到此設置完畢
Private Sub btnUnlock_Click()
Dim targetSheet As String
Dim pwd As String
Dim sheetFound As Boolean
pwd = txtPassword.Text
sheetFound = False
' 定義工作表密碼映射(實際使用中建議加密存儲)
Select Case pwd
Case "pass1": targetSheet = "財務部" ' 確保名稱與實際表名一致
Case "pass2": targetSheet = "行政部"
Case "pass3": targetSheet = "人事部"
Case "pass4": targetSheet = "市場部"
Case "pass5": targetSheet = "總經辦"
Case Else
MsgBox "密碼錯誤!", vbCritical
Exit Sub
End Select
' 檢查工作表是否存在
On Error Resume Next
sheetFound = (Not Sheets(targetSheet) Is Nothing)
On Error GoTo 0
If sheetFound Then
' 顯示目標工作表
Sheets(targetSheet).Visible = xlSheetVisible
Sheets(targetSheet).Activate
' 清空密碼框
txtPassword.Text = ""
Else
MsgBox "錯誤:找不到工作表 '" & targetSheet & "'!", vbCritical
End If
End Sub
![]()
以上就是今天分享的全部內容,大家可以試一下,操作還是比較簡單的~
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.