[英]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.