簡體   English   中英

如何在打開VBA的情況下解鎖工作簿中的空白單元格

[英]How to unlock blank cells in workbook with VBA on open

我有一個包含多個工作表的工作簿,打開工作簿時需要鎖定和保護所有非空白單元格。

這將是一份員工培訓記錄,多個培訓人員將在此評估新員工的技能。 我想防止任何人意外刪除培訓數據。

我找到了可以鎖定所有單元格,將所有空白單元格設置為未鎖定並保護單個工作表的代碼,但是在將其應用於整個工作簿時遇到了麻煩。

Private Sub Workbook_Open()

    Dim myCell As Range

    Set myCell = Selection
    Cells.Select
    Selection.Locked = True
    myCell.Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.Locked = False

    ActiveSheet.Protect DrawingObjects:=True, _
      Contents:=True, Scenarios:=True
    myCell.Select

End Sub

理想情況下,我還想添加密碼保護,以防止新員工取消對工作簿的保護。 是否可以在同一代碼中? 也可以將此分解為一個新問題。

在這種情況下,每個工作表的密碼都是秘密的

Sub Tony()
    Dim s As Worksheet

    For Each s In Sheets
        s.Unprotect ("secret")
            s.Cells.Locked = False
            On Error Resume Next
                s.Cells.SpecialCells(xlCellTypeConstants).Locked = True
                s.Cells.SpecialCells(xlCellTypeFormulas).Locked = True
            On Error GoTo 0
        s.Protect ("secret")
    Next s

End Sub

注意:

首先確保這符合您的要求。 只有這樣,您的事件宏才能調用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM