跳到主要內容

如何設置密碼以保護 Excel 中用戶的個人工作表?

在 Excel 中,您可以為不同的工作表設置不同的密碼,這意味著一個用戶可以使用一個密碼對一個工作表進行更改,而另一個用戶可以使用不同的密碼對另一個工作表進行更改。 但是,有時,您只希望每個用戶能夠查看和訪問他們自己的工作表。 這可以在Excel中解決嗎?


要單獨保護每個工作表並限制用戶對工作表的訪問,請應用以下 VBA 代碼:

1. 打開一個新工作簿,並創建一個名為“Main”的新工作表,見截圖:

2。 然後按 Alt + F11鍵 鍵打開 Microsoft Visual Basic for Applications 窗口,雙擊 的ThisWorkbook 從左邊 項目-VBA項目 窗格以打開一個空白代碼模塊,然後將以下 VBA 代碼複製並粘貼到代碼窗口中,請參見屏幕截圖:

VBA 代碼:設置密碼以保護用戶的個人工作表

Option Explicit
Dim gUserName As String
Dim gUserPass As String
Private Sub Workbook_Open()
'Updateby ExtendOffice
Dim xWShs As Sheets
Dim xWSh As Worksheet
Dim xUserName As String
Dim xPass As String
Dim xBolH As Boolean
GTINPUT:
xUserName = InputBox("Enter the user name")
If TypeName(xUserName) = "String" Then
    If xUserName = "" Then
        Exit Sub
    End If
End If
xUserName = LCase(xUserName)
xPass = InputBox("User name:" & xUserName & Chr(13) & Chr(10) & "Enter the password:")
If TypeName(xPass) = "String" Then
    If xPass = "" Then
    MsgBox "The password is incorrect, please enter the user name and password again."
    GoTo GTINPUT
    End If
Else
    MsgBox "The password is incorrect, please enter the user name and password again."
    GoTo GTINPUT
End If
Set xWShs = Worksheets
xBolH = False
For Each xWSh In Worksheets
    If xWSh.Name = xUserName Then
    xBolH = True
    Exit For
    End If
Next
If xBolH Then
Set xWSh = xWShs(xUserName)
On Error GoTo GTINPUT2
xWSh.Unprotect (xPass)
xWSh.Visible = True
xWSh.Activate
Else
Set xWSh = xWShs.Add
xWSh.Name = xUserName
xWSh.Activate
End If
gUserName = xUserName
gUserPass = xPass
Exit Sub
GTINPUT2:
    MsgBox "The password is incorrect, please enter the user name and password again."
    GoTo GTINPUT
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim xWSh As Worksheet
On Error Resume Next
Set xWSh = Worksheets(gUserName)
xWSh.Protect Password:=gUserPass, DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True
For Each xWSh In Worksheets
    If xWSh.Name <> "Main" Then
        xWSh.Visible = xlSheetVeryHidden
    End If
Next xWSh
ActiveWorkbook.Save
End Sub

3. 然後,將光標放在末尾 私人子工作簿_打開() 腳本,然後按 F5 運行此代碼的關鍵。 現在,在彈出的提示框中,輸入您要為該用戶創建工作表的用戶名,看截圖:

4。 然後,單擊 OK 按鈕,在以下提示框中,輸入保護此工作表的密碼,見截圖:

5。 繼續點擊 OK 按鈕,並立即創建一個以用戶名命名的新工作表,您可以根據需要為該用戶創建數據。 看截圖:

6. 重複上述步驟 3 - 步驟 5,一張一張地創建您要使用的其他工作表。

7. 創建工作表後,通過單擊保存當前工作簿 文件 > 另存為。, 在裡面 另存為 對話框,指定文件名,然後選擇 Excel啟用宏的工作簿(* .xlsm) 格式 保存類型 下拉列表,請參見屏幕截圖:

8. 然後單擊保存按鈕保存此文件。

9. 然後關閉工作簿並重新打開它,然後單擊 啟用內容 在編輯欄頂部激活代碼,請看截圖:

10. 現在,會彈出一個提示框,提醒您輸入用戶名和密碼以打開特定用戶的特定工作表。

11. 最後,將此工作簿發送給其他用戶時,您應該將用戶名和密碼發送給該用戶。 他們只會打開和編輯自己的工作表,並且無權查看其他工作表。


  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 和保存數據; 拆分單元格內容; 合併重複的行和總和/平均值...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 收藏并快速插入公式,範圍,圖表和圖片; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 數據透視表分組依據 週號,週幾等 顯示未鎖定的單元格 用不同的顏色 突出顯示具有公式/名稱的單元格...
kte選項卡201905
  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
How would you then allow for an admin user to see all of those password protected sheets?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations