我有以下代码:
Sub UnProtect4User()
Dim ws As Workbook
Set ws = ActiveWorkbook
Worksheets("Datos").Unprotect Password:="2020"
MsgBox "The Sheet is unprotected"
ws.Sheets("Datos").Range("A2:J350").Locked = False
ws.Sheets("Datos").Protect Password:="2020"
MsgBox "Now you can edit"
End Sub
打开工作簿时,所有工作表均受到保护。如果我按下一个按钮,则顶部的代码将运行以锁定上面具有公式的单元格,以便用户无法触摸它们并让它们更改其他自由的单元格。 问题在于,当最后一行激活时,它将再次保护所有工作表。
这是文件:Data File
答案 0 :(得分:0)
如果在“保护表”对话框中取消选中“选择未锁定的单元格”选项,则即使未锁定的单元格也无法编辑,因为用户无法选择它们。
答案 1 :(得分:0)
在ThisWorkbook
中,这是新代码:
Private Sub Workbook_Open()
Dim ws As Workbook
Set ws = ActiveWorkbook
ClearFilters
Worksheets("Datos").Unprotect Password:="2020"
With Worksheets("Datos")
.EnableSelection = xlNoSelection
ws.Sheets("Datos").Range("A2:N350").Locked = True
End With
Worksheets("Datos").Protect Password:="2020", Contents:=True, _
AllowInsertingColumns:=False, AllowInsertingRows:=False, _
AllowDeletingColumns:=False, AllowDeletingRows:=False, _
AllowSorting:=True, AllowFiltering:=True
End Sub
在模块中:
Dim ws As Workbook
Set ws = ActiveWorkbook
Worksheets("Datos").Unprotect Password:="2020"
With Worksheets("Datos")
.EnableSelection = xlUnlockedCells
ws.Sheets("Datos").Range("A2:L350").Locked = False
ws.Sheets("Datos").Protect Password:="2020"
End With
MsgBox "It's now unprotected, so you can work on it buddy."
End Sub
一切都按预期工作,所以谢谢蒂姆·威廉姆斯的帮助