使用 VBA 取消保护单元格
Using VBA to unprotect cells
所以我有一个传播sheet,我想根据用户输入设置格式,但单元格需要保持锁定状态,直到格式确定它们将成为用户输入单元格。
我的代码将仅查看用户界面的单元格,但允许 VBA 编辑它们。
> 'protects all sheets upon opening work book
> Me.Worksheets("Sheet1").Protect "Password", UserInterfaceOnly:=True
> Me.Worksheets("Sheet2").Protect "Password", UserInterfaceOnly:=True
> Me.Worksheets("Sheet3").Protect "Password", UserInterfaceOnly:=True
所以现在我需要允许用户编辑以下单元格
Sheets("Sheets2").Protection.AllowEditRanges.Add "Test", Range("C2", "C8")
Sheets("Sheets2").Protection.AllowEditRanges.Add "Test", Range("H6")
Sheets("Sheets2").Protection.AllowEditRanges.Add "Test", Range("K6")
我曾尝试在锁定 sheet 之前和之后允许编辑。
我真正想要的是一些 VBA 代码,用于在应用格式后解锁单元格,而不是预先定义哪些单元格可能是可编辑的。
非常感谢任何帮助:)
更改范围的 Locked
属性。
Range("C2", "C8").Locked = false
这相当于使用格式单元格 |保护 |锁定复选框以取消对单元格的保护,并使单元格立即可供编辑。
此外,为了将来的使用,您可能需要考虑在保护步骤中添加一个简单的循环:
Dim sht as Worksheet
For each sht in ThisWorkbook.Sheets
sht.protect password:=Password, Userinterfaceonly:=True
Next sht
这样人们就无法通过添加新工作表来绕过限制,如果工作表被重命名等,保护将继续工作
所以我有一个传播sheet,我想根据用户输入设置格式,但单元格需要保持锁定状态,直到格式确定它们将成为用户输入单元格。 我的代码将仅查看用户界面的单元格,但允许 VBA 编辑它们。
> 'protects all sheets upon opening work book
> Me.Worksheets("Sheet1").Protect "Password", UserInterfaceOnly:=True
> Me.Worksheets("Sheet2").Protect "Password", UserInterfaceOnly:=True
> Me.Worksheets("Sheet3").Protect "Password", UserInterfaceOnly:=True
所以现在我需要允许用户编辑以下单元格
Sheets("Sheets2").Protection.AllowEditRanges.Add "Test", Range("C2", "C8")
Sheets("Sheets2").Protection.AllowEditRanges.Add "Test", Range("H6")
Sheets("Sheets2").Protection.AllowEditRanges.Add "Test", Range("K6")
我曾尝试在锁定 sheet 之前和之后允许编辑。 我真正想要的是一些 VBA 代码,用于在应用格式后解锁单元格,而不是预先定义哪些单元格可能是可编辑的。 非常感谢任何帮助:)
更改范围的 Locked
属性。
Range("C2", "C8").Locked = false
这相当于使用格式单元格 |保护 |锁定复选框以取消对单元格的保护,并使单元格立即可供编辑。
此外,为了将来的使用,您可能需要考虑在保护步骤中添加一个简单的循环:
Dim sht as Worksheet
For each sht in ThisWorkbook.Sheets
sht.protect password:=Password, Userinterfaceonly:=True
Next sht
这样人们就无法通过添加新工作表来绕过限制,如果工作表被重命名等,保护将继续工作