Skip to main content

如何檢查 Excel 中的工作表或工作簿是否受到保護?

Author: Siluvia Last Modified: 2025-08-06

如果您想檢查 Excel 中的某個工作表或工作簿是否受到保護,本文可以幫助您。

使用 VBA 程式碼檢查工作表是否受保護
使用 VBA 程式碼檢查工作簿是否受保護


使用 VBA 程式碼檢查工作表是否受保護

以下 VBA 程式碼可以幫助您輕鬆檢查當前工作簿中哪些工作表是受保護或未受保護的。請按照以下步驟操作。

1. 同時按下 Alt + F11 鍵以打開 Microsoft Visual Basic for Applications 視窗。

2. 在 Microsoft Visual Basic for Applications 視窗中,點擊 插入 > 模組。然後將以下 VBA 程式碼複製並貼到程式碼視窗中。

VBA 程式碼:檢查工作表是否受保護

Sub GetProtectedSheets()
    Dim sh As Worksheet
    Dim xSaveSht As Worksheet
    Dim xSaveToRg As Range
    Dim xSaveToRg1 As Range
    Dim xTxt As String
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xSaveToRg = Application.InputBox("Please select a cell for saving the checking result:", "Kutools for Excel", xTxt, , , , , 8)
    If xSaveToRg Is Nothing Then Exit Sub
    If xSaveToRg.Worksheet.ProtectContents Then
        If MsgBox("This worksheet is protected, would you like to create a new sheet to save the checking result?", vbInformation + vbYesNo, "Kutools for Excel") = vbYes Then
            Set xSaveSht = ThisWorkbook.Worksheets.Add
            Set xSaveToRg = xSaveSht.Cells(1)
        Else
            Exit Sub
        End If
    End If
    Set xSaveToRg = xSaveToRg.Cells(1)
    Set xSaveToRg1 = xSaveToRg.Offset(0, 1)
    xSaveToRg.Value = "Protected worksheet"
    xSaveToRg1.Value = "Unprotected worksheet"
    Set xSaveToRg = xSaveToRg.Offset(1)
    Set xSaveToRg1 = xSaveToRg1.Offset(1)
    For Each sh In Worksheets
        If sh.Name <> xSaveSht.Name Then
            If sh.ProtectContents Then
                xSaveToRg.Value = sh.Name
                Set xSaveToRg = xSaveToRg.Offset(1)
            Else
                xSaveToRg1.Value = sh.Name
                Set xSaveToRg1 = xSaveToRg1.Offset(1)
            End If
        End If
    Next
End Sub

3. 按下 F5 鍵執行程式碼,隨後會彈出一個 Kutools for Excel 對話框。請選擇一個儲存格來放置檢查結果,最後點擊 確定 按鈕。

A screenshot showing the dialog box to select a cell for saving the checking result in Excel

注意

1. 如果您選擇的儲存格位於受保護的工作表中,另一個 Kutools for Excel 對話框將彈出,點擊 確定 按鈕後,檢查結果將保存在新創建的工作表中。

A screenshot showing the dialog box indicating the worksheet, and the checking result will be saved in a new created worksheet

2. 如果所選儲存格位於未受保護的工作表中,檢查結果將立即顯示在所選區域中。

您可以查看如下截圖中的檢查結果:

A screenshot displaying the result of protected and unprotected worksheets in Excel


使用 VBA 程式碼檢查工作簿是否受保護

同樣地,您可以使用 VBA 程式碼檢查活動工作簿是否受保護。請按照以下步驟操作。

1. 同時按下 Alt + F11 鍵以打開 Microsoft Visual Basic for Applications 視窗。

2. 在 Microsoft Visual Basic for Applications 視窗中,點擊 插入 > 模組。然後將以下 VBA 程式碼複製並貼到程式碼視窗中。

VBA 程式碼:檢查工作簿是否受保護

Sub IsWorkbookProtected()
With ActiveWorkbook
  If .ProtectWindows Or .ProtectStructure Then
    MsgBox "This workbook is password protected"
  Else
    MsgBox "This workbook is not password protected"
  End If
End With
End Sub

3. 按下 F5 鍵執行程式碼。

根據您的工作簿情況,您將看到以下對話框之一。

A screenshot of the message box indicating if a workbook is password protected in Excel


在 Excel 中一次輕鬆保護或取消保護多個工作表:

Kutools for Excel保護工作表取消保護工作表 功能可幫助您在 Excel 中輕鬆一次性保護或取消保護活動工作簿中的多個工作表。請參見下面的截圖:

A screenshot of the Kutools for Excel feature to protect or unprotect multiple worksheets at once

Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取

最佳 Office 辦公效率工具

🤖 Kutools AI Aide:徹底革新數據分析,基於智能執行|生成程式碼|創建自訂公式|分析數據並生成圖表|調用 Kutools Functions
熱門功能查找、選取項目的背景色或標記重複值 | 刪除空行 | 合併列或單元格且不丟失資料 | 四捨五入...
高級 LOOKUP多條件查找|多值查找|多表查找|模糊查找...
高級下拉列表快速創建下拉列表 | 關聯下拉列表 | 多選下拉列表 ...
列管理器添加指定數量的列 | 移動列 | 切換隱藏列的可見狀態 | 區域與列比較 ...
精選功能網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿及工作表管理器 | 資源庫 (自動文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按清單發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/傾斜/刪除線 ...)...
前15 大工具集12 款文本工具添加文本刪除特定字符,...)|50+ 種圖表 類型甘特圖,...)|40+ 實用 公式基於生日計算年齡,...)|19 款插入工具插入QR码按路徑插入圖片,...)|12 款轉換工具金額轉大寫匯率轉換,...)|7 款合併和分割工具高級合併行分割儲存格,...)| ...以及更多
使用 Kutools 支援你的語言——支援英語、西班牙語、德語、法語、中文及40 多種語言!

利用 Kutools for Excel 大幅提升你的 Excel 技能,感受前所未有的高效體驗。 Kutools for Excel 提供超過300 項高級功能,助你提升效率並保存時間。 點此查看你最需要的功能...


Office Tab 為 Office 帶來標籤式介面,讓你的工作更加輕鬆

  • 啟用 Word、Excel、PowerPoint 的標籤式編輯和閱讀功能
  • 在同一個視窗的標籤中打開和創建多個文件,而不是在新窗口中分開開啟。
  • 可提升你50% 的工作效率,每天為你大量減少滑鼠點擊次數!