跳至頁尾內容
EXCEL 工具

如何取消保護 Excel 工作表(簡單指南)

Iron Software 團隊撰寫


您正在注視一個灰色的 Excel 工作表。 每個單元格都被鎖定。 鍵入不成功,排序不成功,右鍵單擊顯示一個幾乎空的選單。 聽起來很熟悉嗎?

無論您是自己設置了保護並需要恢復 Excel 密碼,收到同事發來的文件,還是想要編輯鎖定以分發的電子表格,這裡有一個簡單的方法可以恢復存取。 本指南涵蓋解除 Excel 工作表保護的每一種方法,從兩秒鐘的帶狀單擊到無宏的 XML 方法,讓您可以快速恢復工作。

如果您已經在 YouTube 上搜尋了針對此的影片教程,您可能已經看到同樣的兩種方法重複不斷。 這篇文章更進一步,涵蓋邊緣情況、故障排除和每個頂級結果遺漏的現實世界情景。 *

Excel 保護介紹

Excel 保護是一項內建的安全功能,旨在幫助使用者控制其資料的存取並防止未經授權的更改。 無論您是在處理敏感的財務報告、共享的專案追踪器,或任何包含重要資訊的 Excel 文件,保護工具讓您可以決定誰能查看、編輯或格式化您的內容。

了解密碼保護

密碼保護 是 Excel 安全性的基石,讓使用者能夠用只有授權使用者知道的密碼鎖定其 Excel 工作表或整個工作簿。 當您在審閱標籤中使用保護工作表保護工作簿選項設置密碼時,Excel 會加密內容,讓人無法編輯甚至查看(在文件級保護情況下),除非輸入正確密碼。

最快的修復方法:從審閱標籤取消保護工作表(30 秒)

如果 Excel 工作表未使用密碼保護,這就是您所需的一切:

  1. 在您的電腦上打開您的 Excel 文件。
  2. 單擊頂部帶狀區的審閱標籤。
  3. 單擊取消保護工作表(位於"保護"組中,通常在帶狀區的中間偏右的位置)。
  4. 完成。 受保護的工作表立即可以編輯。

如何取消保護 Excel 工作表(簡單指南):圖像 1 - 帶有

如果按鈕顯示保護工作表而不是取消保護工作表,則工作表當前未被保護,您可以自由地編輯。

如果單擊取消保護工作表開啟密碼對話框,提示您輸入您沒有的 Excel 密碼,請繼續閱讀。 您將需要以下方法之一。


方法 1:右鍵單擊工作表標籤

對於以滑鼠為主的使用者來說,這比帶狀區更快,且適用於桌面應用程式的任何版本。

  1. 在螢幕底部的工作表標籤上右鍵單擊(具有工作表名稱的標籤,例如"Sheet1"或"Budget Q3")。

  2. 在出現的上下文選單中,點擊取消保護工作表
  3. 如果被提示,輸入密碼。

如何取消保護 Excel 工作表(簡單指南):圖像 2 - 工作表標籤上的右鍵單擊上下文選單,突出顯示的

如果右鍵單擊選單顯示保護工作表,則工作表已解鎖。 如果"取消保護工作表"呈灰色,Excel 工作簿結構可能被保護,請參閱下方的故障排除部分。 *

方法 2:使用格式選單(適用於舊版)

在較舊版本的 Excel(2007–2010)中,或者如果您更喜歡透過選單而不是帶狀區進行導航:

  1. 單擊首頁標籤。

  2. 在最右側的單元格組中,單擊格式

  3. 在下拉選單底部,單擊取消保護工作表
  4. 如果系統提示,請輸入 Excel 密碼。

如何取消保護 Excel 工作表(簡單指南):圖像 3 - 主頁標籤 → 格式下拉選單開啟,突出顯示底部的

此路徑在您的帶狀區已被客製化、最小化或軟體佈局與標準設置不同時特別有用。 *

方法 3:鍵盤快捷鍵

如果您是一個以鍵盤為主的人,雖然沒有單一按鍵可以取消保護 Excel 工作表,但您可以使用 Excel 的Alt 鍵導航來在不使用滑鼠的情況下進入:

Windows:

  • 依次按下AltRPS(不是同時按住)。
  • 這個導航路徑為:Alt(激活帶狀區快捷鍵) → R(審閱標籤) → PS(保護工作表/取消保護工作表切換)。

Mac上,等效的選單路徑是: 工具保護取消保護工作表

預設情況下,Mac 沒有鍵盤快捷鍵,但您可以通過系統偏好設置 → 鍵盤 → 快捷鍵 → 應用程式快捷鍵建立一個。 使用管理員權限登入您的 Mac,以將快捷鍵儲存到您的帳戶。 *

方法 4:使用 VBA 取消保護工作表(當您丟失密碼時)

當您無法記得 Excel 密碼並需要快速移除保護時,這種方法救了您的命。這讓使用者無需知道原始密碼即可取消保護 Excel 工作表。 此方法可靠地適用於舊的 .XLS 文件和受 Excel 內建工作表保護保護的大多數 .XLSX 文件,只是不適用於使用完整打開文件密碼加密的文件。

重要的警告: 這僅適用於工作表保護。 如果 Excel 提示您輸入密碼才能打開文件,那麼這段 VBA 程式碼無濟於事,那是文件級加密,這是一個完全不同的安全層。

下面的 VBA 宏從技術上來說是一種暴力破解方法:它以高速迴圈穿越字元組合,直到找到一個 Excel 接受的可用密碼等價物。它並不會恢復您的原始密碼,而是生成一個同樣可使用的密碼,使使用者即使忘記密碼也能取消保護 Excel 表。 VBA 程式碼可以生成一個可用的密碼來解鎖受保護的工作表,讓使用者在不知原始密碼的情況下可以存取 Excel 表。

步驟

  1. 打開包含受保護工作表的 Excel 文件。
  2. 按下Alt + F11 打開Visual Basic 編輯器(VBE)

  3. 在選單欄中,點擊插入模組來建立一個新的程式碼模組。

  4. 將以下 VBA 程式碼粘貼到空白的模組窗口中:
Sub UnprotectSheet()
    Dim ws As Worksheet
    Dim i As Integer, j As Integer, k As Integer
    Dim l As Integer, m As Integer, n As Integer
    Dim i1 As Integer, i2 As Integer, i3 As Integer
    Dim i4 As Integer, i5 As Integer, i6 As Integer
    On Error Resume Next
    For Each ws In ActiveWorkbook.Worksheets
        For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
        For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
        For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
        For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
            ws.Unprotect Chr(i) & Chr(j) & Chr(k) & _
                Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
                Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
            If ws.ProtectContents = False Then
                MsgBox "Sheet '" & ws.Name & "' unprotected!"
                Exit Sub
            End If
        Next: Next: Next: Next: Next: Next
        Next: Next: Next: Next: Next: Next
    Next ws
End Sub
Sub UnprotectSheet()
    Dim ws As Worksheet
    Dim i As Integer, j As Integer, k As Integer
    Dim l As Integer, m As Integer, n As Integer
    Dim i1 As Integer, i2 As Integer, i3 As Integer
    Dim i4 As Integer, i5 As Integer, i6 As Integer
    On Error Resume Next
    For Each ws In ActiveWorkbook.Worksheets
        For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
        For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
        For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
        For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
            ws.Unprotect Chr(i) & Chr(j) & Chr(k) & _
                Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
                Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
            If ws.ProtectContents = False Then
                MsgBox "Sheet '" & ws.Name & "' unprotected!"
                Exit Sub
            End If
        Next: Next: Next: Next: Next: Next
        Next: Next: Next: Next: Next: Next
    Next ws
End Sub
Option Strict On



Sub UnprotectSheet()
    Dim ws As Worksheet
    Dim i As Integer, j As Integer, k As Integer
    Dim l As Integer, m As Integer, n As Integer
    Dim i1 As Integer, i2 As Integer, i3 As Integer
    Dim i4 As Integer, i5 As Integer, i6 As Integer
    On Error Resume Next
    For Each ws In ActiveWorkbook.Worksheets
        For i = 65 To 66
            For j = 65 To 66
                For k = 65 To 66
                    For l = 65 To 66
                        For m = 65 To 66
                            For i1 = 65 To 66
                                For i2 = 65 To 66
                                    For i3 = 65 To 66
                                        For i4 = 65 To 66
                                            For i5 = 65 To 66
                                                For i6 = 65 To 66
                                                    For n = 32 To 126
                                                        ws.Unprotect(Chr(i) & Chr(j) & Chr(k) & _
                                                                     Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
                                                                     Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n))
                                                        If ws.ProtectContents = False Then
                                                            MsgBox("Sheet '" & ws.Name & "' unprotected!")
                                                            Exit Sub
                                                        End If
                                                    Next
                                                Next
                                            Next
                                        Next
                                    Next
                                Next
                            Next
                        Next
                    Next
                Next
            Next
        Next
    Next ws
End Sub
$vbLabelText   $csharpLabel
  1. F5或點擊運行按鈕(綠色播放三角)來執行程式。

  2. 等待片刻,會彈出一個對話框確認已取消保護每個 Excel 工作表。
  3. 關閉 VBE,返回到您的電子表格,工作表現在應該可以完全編輯。

⚠️ 注意: 許多使用者報告,這種方法在 .XLSX 文件上第一次嘗試時完全有效。 在非常舊的 .XLS 格式文件上可能需要多幾秒鐘。 完成后,您將能夠完全存取並編輯工作表中的所有單元格。 *

方法 5:使用 Google Sheets 作為免費變通方案

這是一個被低估的技巧,完全繞過 Excel 的工作表保護,無需宏,無需下載或安裝軟體,無需付費帳戶。 您只需要一個免費的 Google 帳戶。 Google Sheets 往往忽略 Excel 的工作表級保護,使使用者能夠在不知密碼的情況下取消保護 Excel 工作表。

  1. 登入您的 Google 帳戶,在瀏覽器中打開 Google 雲端硬碟drive.google.com)。

  2. 將您的 .XLSX 文件上傳到雲端硬碟(從桌面拖放,或點擊+ 新建 → 文件上傳以瀏覽您的電腦)。

  3. 在雲端硬碟中右鍵單擊 XLSX 文件,選擇開啟方式 → Google Sheets
  4. Google Sheets 將打開文件並忽略工作表級保護,即使不知道密碼,使用者也可以立即編輯之前受保護的工作表。
  5. 當您完成編輯后,前往文件 → 下載 → Microsoft Excel (.XLSX)以保存為 XLSX 格式。

注意:此方法對於需要在無法獲取原始密碼的情況下取消保護 Excel 表的使用者特別有用。 它允許您取消保護 Excel 表並編輯 Excel 表而無需密碼。

限制: 格式、公式和資料應能在來回之間生存,但某些高級 Excel 功能(資料透視表、某些圖表型別、Power Query)可能無法在 Google Sheets 中正確顯示。 對於簡單的資料編輯,此方法非常有效,只需要一個瀏覽器和一個 Google 帳戶。

方法 6:取消保護工作簿(與工作表—這兩者不同)

這裡有一個常見的混淆點:工作表保護工作簿保護在 Excel 中是兩個不同的東西,它們分別需要不同的步驟來移除保護。

  • 工作表保護鎖定特定工作表的_內容_如單元格、公式、格式。
  • 工作簿保護鎖定 Excel 工作簿的_結構_即您無法新增、刪除、移動、重新命名、隱藏或取消隱藏工作表。

如果您的工作表標籤上的右鍵單擊選單變灰,或您無法新增新的 Excel 工作表,那麼就是工作簿被保護,而不僅僅是工作表。

取消保護 Excel 工作簿的方法

  1. 點擊審閱標籤。

  2. 點擊保護工作簿。 如果工作簿被保護,按鈕將顯示為"按下"或突出顯示。
  3. 單擊該按鈕以切換保護狀態(如果系統提示,請輸入密碼)。

一旦移除了工作簿保護,您就可以使用本教程中的任何方法取消保護各個工作表。 *

方法 7:直接編輯 XML 文件(無需宏)

這種方法適用於 .XLSX 文件,這些文件實際上是包含 XML 文件的壓縮檔案,無需使用 VBA 或下載任何第三方軟體。 它允許使用者在不知密碼的情況下取消保護 Excel 工作表。 這是本教程中技術上最具手動操作的方法,但許多非程式人員發現一旦理解了文件擴展名的技巧後其實很簡單。

關鍵見解:.XLSX 文件只是偽裝成的壓縮文件。當您將文件擴展名從 .XLSX 更改為 .ZIP,如同任何其他壓縮檔案一樣打開它,然後編輯裡面的 XML 文件。例如,為了取消保護 Excel 表,工作表保護被儲存為相關工作表文件中的單個 XML 標籤(例如第一個工作表是 sheet1.xml)刪除該標籤,保存修改后的 XML 文件,保護就消失了。 這種方法使您可以在不需要密碼的情況下解鎖 Excel 表,讓使用者能夠存取。

步驟指南

  1. 首先製作您的 .XLSX 文件的副本,您即將直接編輯它,因此始終將備份保存在桌面或電腦上的其他文件夾中。

  2. 將副本重命名,使其具有 .ZIP 文件擴展名而非 .XLSX(例如,Budget.xlsx → Budget.zip)。 當您更改文件擴展名時,Windows 可能會顯示警告—確認重命名。
  3. 使用 Windows 檔案總管或像 7-Zip 這樣的壓縮程式打開壓縮文件。
  4. 在壓縮檔案中導航到 xl/worksheets/ 文件夾。
  5. 找到對應於您受保護工作表的 XML 文件(例如,sheet1.xml、sheet2.xml)。
  6. 將其提取到桌面,然後用記事本或您電腦上的任何普通文字編輯器打開。

  7. 在記事本中,使用Ctrl + F搜尋 sheetProtection。

  8. 找到<sheetProtection 標籤,通常看起來像這樣: <sheetProtection algorithmName="SHA-512" hashValue="..." password="..." .../>。 這是強制鎖定您的 Excel 工作表的 sheetProtection 標籤。
  9. 選擇並刪除整個 sheetProtection 標籤行。

  10. 在記事本中保存修改后的 XML 文件。

  11. 將修改后的 XML 文件複製回壓縮檔案中,替換原件(在 Windows 檔案總管中拖放,或者使用 7-Zip 的更新功能)。

  12. 將壓縮檔案的名稱重命名回 .xlsx 格式,將文件後綴從 .zip 更改為 .xlsx。
  13. 在 Excel 中打開文件,工作表現在可以解鎖並完全編輯。

⚠️ 重要: 只刪除標籤。 不要編輯或刪除 XML 文件中的任何其他行。修改錯誤的標籤會損壞電子表格。 始終對副本進行操作,永遠不要對原始文件進行操作。 *

使用暴力破解方法取消保護 Excel

暴力破解方法是在忘記密碼時解鎖 Excel 表的最後手段。 此技術涉及系統地嘗試每種可能的密碼組合,直到找到正確的密碼。 雖然暴力破解對簡單或短密碼有效,但由於可能性太多,對於較長、更複雜的密碼來說變得不切實際。

在 Excel 的上下文中,可以使用專門的軟體或自動化輸入不同密碼組合的 VBA 腳本進行暴力破解攻擊。 有些工具專門設計來通過利用保護演算法中的弱點解鎖 Excel 表或工作簿,特別是在舊版本的 Excel 中。

然而,瞭解使用暴力破解方法的道德和法律影響至關重要。 嘗試在沒有擁有者許可的情況下解鎖 Excel 表或工作簿,不僅是不道德的,還可能是非法的。 暴力破解應該只用於您自己的文件,當您確實忘記了密碼並且沒有其他方法可以恢復存取。

如果您決定使用暴力破解方法,請謹慎行事。 始終使用可信賴的軟體或受信任的 VBA 程式碼,並且要意識到此過程可能需要大量時間,具體取決於密碼的複雜性。 對於大多數使用者來說,這種方法是最後手段,但當所有其他選項都失敗時,並且您需要解鎖 Excel 表以存取或編輯重要資料時,它可以是救命稻草。


常見問題及故障排除

"取消保護工作表"呈灰色或缺失

這通常意味著Excel 工作簿結構被保護。 前往審閱 → 保護工作簿並先停用此功能,然後再嘗試取消保護工作表。 這是人們在這個過程中遇到的最常見錯誤。

密碼對話框出現但忘記了密碼

嘗試使用 VBA 暴力破解宏(方法 4)或 XML 文件編輯方法(方法 7)。 Google Sheets 方法(方法 5)也可能無需輸入密碼就能繞過鎖定。 這三種方法對於那些不再擁有原始密碼的使用者都有效。

編輯 XML 後出現"文件已損壞"錯誤

您可能修改了除了標籤之外的其他東西,或者在將其放回壓縮檔案之前,修改后的 XML 文件未正確保存。恢復您的備份副本並重試,使用記事本的搜尋功能(Ctrl + F)精確定位 sheetProtection 標籤,然后您再刪掉它。

VBA 宏運行但沒有任何動作

確保在您的安全設置中啟用了宏。 前往文件 → 選項 → 信任中心 → 信任中心設置 → 宏設置並選擇啟用所有宏(您可以之後再改回去)。 另外確認您將 VBA 程式碼粘貼到了模組(插入 → 模組)中,而不是直接粘貼到工作表或工作簿程式碼窗格中。 如果您在 VBE 中貼到了錯誤的地方,程式將無法正確運行。

文件要求輸入密碼才能打開

這是文件級加密,這是一個與工作表保護不同的安全層。 如果 Excel 在打開文件之前提示您輸入密碼,本貼中的方法都無濟於事。您將需要原始密碼或專門的文件恢復軟體。

在 Mac 上外觀不同

在 Mac 上,取消保護 Excel 表的路徑是工具 → 保護 → 取消保護工作表。 審閱標籤方法也有效,帶狀區佈局因版本而異,但取消保護工作表按鈕位於同一組中。VBA 方法(Alt + F11)也在 Mac Excel 上有效。

取消保護后能夠編輯某些單元格

某些 Excel 工作表使用更細粒度的許可系統,即使在移除一般工作表保護后,某些單元格或範圍對特定使用者仍然保持鎖定。 如果您取消了工作表的保護,但仍然無法編輯特定區域,請檢查審閱 → 允許編輯範圍以查看是否已設置範圍級存取控制作為單獨的安全層。 *

為開發人員:透過 IronXL 程式化取消保護 Excel 工作表

如果您需要在自動化工作流程中取消保護 Excel 工作表,以處理大量文件、構建 Web 應用程式或與內部系統整合,手動通過桌面軟體移除保護在規模上是不切實際的。

IronXL 是一個 .NET 程式庫,使您可以直接在 C# 中讀取、寫入和操作 Excel 文件,而無需在伺服器上安裝 Excel。 移除工作表保護只需一行程式碼,無需 GUI 存取,無需密碼提示,無需手動編輯 XML 文件:

using IronXL;
WorkBook workBook = WorkBook.Load("ProtectedReport.xlsx");
WorkSheet sheet = workBook.WorkSheets[0];
// Remove sheet protection programmatically
sheet.UnprotectSheet("your-password-here");
workBook.SaveAs("UnprotectedReport.xlsx");
using IronXL;
WorkBook workBook = WorkBook.Load("ProtectedReport.xlsx");
WorkSheet sheet = workBook.WorkSheets[0];
// Remove sheet protection programmatically
sheet.UnprotectSheet("your-password-here");
workBook.SaveAs("UnprotectedReport.xlsx");
Imports IronXL

Dim workBook As WorkBook = WorkBook.Load("ProtectedReport.xlsx")
Dim sheet As WorkSheet = workBook.WorkSheets(0)
' Remove sheet protection programmatically
sheet.UnprotectSheet("your-password-here")
workBook.SaveAs("UnprotectedReport.xlsx")
$vbLabelText   $csharpLabel

對於 Excel 工作簿級別的保護,IronXL 也能夠處理,無需手動壓縮檔案操作:

// Remove Excel workbook structure protection
workBook.Unprotect("workbook-password");
workBook.SaveAs("UnprotectedWorkbook.xlsx");
// Remove Excel workbook structure protection
workBook.Unprotect("workbook-password");
workBook.SaveAs("UnprotectedWorkbook.xlsx");
$vbLabelText   $csharpLabel

無需安裝 Excel。 在 ASP.NET 網頁應用程式、控制台應用程式、Azure 函式和 Windows 服務中都適用。 透過 NuGet 下載程式庫並在幾分鐘內將它新增到您的專案中。

瀏覽完整的文件,包括如何程式化地保護、取消保護和管理 Excel 文件的安全性,請至IronXL Excel 程式庫頁面 *

快速參考:您應使用哪種方法?

情況 最佳方法
未設置密碼 審閱標籤 → 單擊取消保護工作表
無密碼,鍵盤偏好 Alt → R → PS
密碼未知,宏已啟用 VBA 暴力破解宏(方法 4)
密碼未知,無宏支持 編輯 XML 文件(方法 7)
快速修復,只需編輯資料 Google Sheets 上傳(方法 5)
Excel 工作簿結構已鎖定 首先取消保護工作簿(方法 6)
批量處理/自動化 IronXL for .NET(開發人員部分)

總結

知道如何取消保護 Excel 表是那些第一次感覺不可能第二次感覺顯而易見的技能之一。 對於大多數使用者來說,這是一項2秒鐘的工作:單擊審閱標籤,然後單擊取消保護工作表。 當您被提示輸入您沒有的 Excel 密碼時,VBA暴力破解方法和XML文件方法在無需下載任何專門軟體的情況下都有效。

大多數影片教程遺漏的最大一點是:工作表保護工作簿保護是單獨的。 如果您的右鍵單擊選單呈灰色,或者"取消保護工作表"按鈕不起作用,請首先檢查審閱標籤上的保護工作簿設置。僅這個區別就能為您節省很多時間和挫敗感。

無論使用哪種方法,開始之前務必保存您的 XLSX 文件的備份副本。 一個備份電子表格需要兩秒鐘建立,但可能會拯救您免於文件損壞。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話