Excel 取消对工作表的保护,保护一些单元格,并保留其他单元格
我有以下代码:Excel 取消对工作表的保护,保护一些单元格,并保留其他单元格,excel,vba,userform,Excel,Vba,Userform,我有以下代码: 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
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
打开工作簿时,所有工作表都受到保护。如果我按下一个按钮,上面的代码将运行以锁定上面有公式的单元格,这样用户就不能触摸它们,并让它们更改其他免费的单元格。
问题是,当最后一行激活时,它会再次保护所有板材
文件如下:如果取消选中“保护工作表”对话框中的“选择未锁定单元格”选项,则即使是未锁定的单元格也无法编辑,因为用户无法选择它们。在
此工作簿中
这是新代码:
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
这一切都按照它的预期工作,因此感谢Tim Williams的帮助公式的范围是什么?@TimWilliams从M:2到N:350,但我也想包括K:2到L:350,因为它的数据存储在登录用户的数据中,所以我不希望有任何更改。一旦保护工作表,解锁的单元格就不应该受到保护。类似的代码对我来说效果很好。我试了几次,所有的单元格都被锁定了,这看起来很奇怪,因为我声明不锁定这些单元格范围。如果添加
Debug.Print ws.Sheets(“Datos”).range(“A2”)会发生什么.Locked
就在结束子项
之前?我找到了一种手动执行此操作的方法,但找不到哪个代码触发该选项您必须在某个点设置它,并且它一直存在。请参见此处,了解如何通过VBA实现这一点:卓越,现在我让它工作起来了。还有一个问题,是否有办法恢复所选内容,这样当excel打开时,所有工作簿都会像以前一样受到保护?是的-在工作簿的“打开”子部分中,您将取消对工作表的保护,锁定所有单元格,然后重新保护工作表。