萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 辦公室軟體 >  >> Excel 教學 >> Excel 綜合

Excel VBA 控制滑鼠可操作範圍:鎖定特定區域外禁止選取

透過工作表保護機制,結合 EnableSelection = xlUnlockedCells,可限制使用者僅能選取/編輯特定未鎖定區域,其餘區域滑鼠無法點選。

完整程式碼

Sub RestrictSelectionArea()
    With ActiveSheet
        .Unprotect                    ' 解除現有保護(無密碼)
        .Cells.Locked = False         ' 先解鎖所有儲存格
        .Range("F1:J99").Locked = True ' 僅鎖定 F1:J99 區域
        .EnableSelection = xlUnlockedCells ' 僅允許選取未鎖定儲存格
        .Protect                      ' 啟用保護(無密碼)
    End With
End Sub

程式碼逐行解析

程式碼 功能
.Unprotect移除現有工作表保護(若有密碼需提供)
.Cells.Locked = False將所有儲存格「鎖定」屬性設為 False(預設為 True)
.Range("F1:J99").Locked = True將 F1:J99 區域設為「鎖定」
.EnableSelection = xlUnlockedCells設定選取模式:僅能選取未鎖定儲存格
.Protect套用工作表保護,鎖定生效

EnableSelection 三種模式

常數 行為
xlNoSelection完全禁止選取任何儲存格(含未鎖定)
xlUnlockedCells**僅能選取未鎖定儲存格**(本例使用)
xlNoRestrictions預設,可選取所有儲存格(鎖定僅防編輯)

效果驗證

  • 執行巨集後,滑鼠點擊 F1:J99 區域 → 無反應(無法選取、無法編輯)。
  • 點擊 F1:J99 以外區域 → 正常選取、編輯。
  • 若需編輯 F1:J99,必須先執行 ActiveSheet.Unprotect 解除保護。

進階應用

  • 設定密碼保護:.Protect Password:="secret",解除時需密碼。
  • 允許特定動作:.Protect AllowFormattingCells:=True, AllowInsertingRows:=True 等參數。
  • 動態區域:搭配 CurrentRegion 或命名範圍自動判斷鎖定範圍。
copyright © 萬盛學電腦網 all rights reserved