Lan*_*rts 28
您可以通过将锁定状态设置为False来选择您不希望受保护的单元格(用户可编辑):
Worksheets("Sheet1").Range("B2:C3").Locked = False
Run Code Online (Sandbox Code Playgroud)
然后,您可以保护工作表,并保护所有其他单元格.执行此操作的代码仍然允许您的VBA代码修改单元格:
Worksheets("Sheet1").Protect UserInterfaceOnly:=True
Run Code Online (Sandbox Code Playgroud)
要么
Call Worksheets("Sheet1").Protect(UserInterfaceOnly:=True)
Run Code Online (Sandbox Code Playgroud)
尝试使用该Worksheet.Protect方法,如下所示:
Sub ProtectActiveSheet()
Dim ws As Worksheet
Set ws = ActiveSheet
ws.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True, Password="SamplePassword"
End Sub
Run Code Online (Sandbox Code Playgroud)
但是,您应该注意在 VBA 代码中包含密码。如果您只是想设置一个简单的屏障来防止用户犯删除公式等小错误,则不一定需要密码。
另外,如果您想了解如何在 Excel 中使用 VBA 执行某些操作,请尝试录制宏并查看它生成的代码。这是开始使用 VBA 的好方法。