如何使用vba锁定excel中单元格中的数据

raa*_*aam 16 excel vba excel-vba

我想阻止其他人使用VBA编辑我的Excel工作表中的单元格内容.是否有可能做到这一点?

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)


Ben*_*ack 4

尝试使用该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 的好方法。