Skip to main content

如何在 Excel 中於資料輸入後鎖定或保護儲存格?

Author: Siluvia Last Modified: 2025-05-12

假設您有一個工作表,並且只有一個特定範圍的空白儲存格需要進行資料輸入,而在完成資料輸入後,您希望這些儲存格能自動鎖定以防止再次更改。該如何實現呢?本文可以幫助您解決這個問題。

使用 VBA 程式碼在資料輸入後鎖定或保護儲存格


使用 VBA 程式碼在資料輸入後鎖定或保護儲存格

例如,特定範圍的空白儲存格為 A1:F8。請按照以下步驟操作,以便在 Excel 中於資料輸入後鎖定這些儲存格。

1. 請先解鎖此範圍,方法是選擇這些儲存格,右鍵單擊,然後在右鍵選單中選擇「設定儲存格格式」,在「設定儲存格格式」對話框中,取消勾選「保護」標籤下的「鎖定」方框,最後點擊「確定」按鈕。詳見截圖:

A screenshot of the Format Cells dialog box showing the Locked checkbox under the Protection tab

2. 點擊「檢視」>「保護工作表」,並指定密碼來保護此工作表。

3. 右鍵單擊工作表標籤,從右鍵選單中選擇「檢視程式碼」。然後將以下 VBA 程式碼複製並貼到程式碼窗口中。詳見截圖:

VBA 程式碼:在資料輸入後鎖定或保護儲存格

Dim mRg As Range
Dim mStr As String

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
    Set mRg = Target.Item(1)
    mStr = mRg.Value
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xRg As Range
    On Error Resume Next
    Set xRg = Intersect(Range("A1:F8"), Target)
    If xRg Is Nothing Then Exit Sub
    Target.Worksheet.Unprotect Password:="123"
    If xRg.Value <> mStr Then xRg.Locked = True
    Target.Worksheet.Protect Password:="123" 
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
    Set mRg = Target.Item(1)
     mStr = mRg.Value
End If
End Sub

A screenshot of the VBA code pasted into the Code window in Excel's Visual Basic for Applications editor

備註:在程式碼中,“A1:F8” 是您需要輸入資料的範圍;“123” 是受保護工作表的密碼。請根據需要進行修改。

4. 同時按下 Alt + Q 鍵以關閉 Microsoft Visual Basic for Applications 窗口。

在完成向範圍 A1:F8 的儲存格輸入資料後,它們將自動被鎖定。如果您嘗試更改此範圍內任何儲存格的內容,系統會彈出提示對話框。詳見截圖:

A screenshot of the prompt dialog box showing an error after trying to modify a locked cell in Excel


相關文章

最佳辦公效率工具

🤖 Kutools AI 助手:基於智能執行方式革新數據分析:智能執行   |  生成代碼  |  創建自訂公式  |  分析數據並生成圖表  |  調用 Kutools 函數
熱門功能查找、標記重複值或識別重複項   |  刪除空行   |  合併列或單元格而不丟失數據   |   四捨五入無需公式 ...
高級 LOOKUP多條件 VLookup    多值 VLookup  |   多表查找   |   模糊查找 ....
高級下拉列表快速創建下拉列表   |  依賴下拉列表   |  多選下拉列表 ....
列管理器添加特定數量的列  |  移動列  |  切換隱藏列的可見狀態  |  比較區域和列 ...
特色功能網格聚焦   |  設計檢視   |   增強編輯欄    工作簿與工作表管理器   |  資源庫(自動文本)   |  日期提取器   |  合併資料   |  加密/解密儲存格    按列表發送電子郵件   |  超級篩選   |   特殊篩選(篩選粗體/斜體/刪除線...) ...
頂級 15 種工具集12 個文本工具添加文本刪除特定字符、...)   |   50+ 圖表 類型甘特圖、...)   |   40+ 實用 公式基於生日計算年齡、...)   |   19 個插入工具插入QR碼根據路徑插入圖片、...)   |   12 個轉換工具金額轉大寫匯率轉換、...)   |   7 個合併與分割工具高級合併行分割儲存格、...)   |   ... 還有更多

使用 Kutools for Excel 提升您的 Excel 技巧,體驗前所未有的高效。 Kutools for Excel 提供超過 300 種高級功能來提高生產力並節省時間。  點擊這裡獲取您最需要的功能...


Office Tab 將標籤式界面帶到 Office,讓您的工作更加輕鬆

  • 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中啟用標籤式編輯和閱讀。
  • 在同一窗口的新標籤中打開和創建多個文檔,而不是在新窗口中。
  • 將您的生產力提高 50%,每天為您減少數百次鼠標點擊!