我有一个 excel 工具,可以根据用户的登录信息从用户那里收集信息。信息存储在其中一个工作表的单元格中。如果我想锁定这些单元格以使它们无法手动更新,我该怎么做呢?如果其他人登录,显然这些单元格会改变。我希望通过VBA来做到这一点。
我只想锁定 6 个单元格...其他所有内容都应该是可编辑的...
谢谢
您可以使用如下密码保护工作表:
Private Sub Workbook_Open()
Sheets("sheetName").Protect Password:="YourPassword", UserInterfaceOnly:=True
End Sub
这将防止用户在不输入密码的情况下手动更改工作表。您的 VBA 代码仍然可以进行更改,因为您已设置UserInterfaceOnly
为True
.
请注意,用户可以通过 Visual Basic 编辑器导航到代码来轻松查看此密码。不过,您也可以对代码进行密码保护:只需右键单击模块,单击 VBAProject 属性并转到保护选项卡。
有关更多信息,请参阅此页面:Excel VBA:在受保护的工作表和工作表上运行宏的宏代码。
如果这些单元格是您要保护的工作表上唯一的单元格,则只需通过将Locked
属性更改为 false 来更改剩余单元格的单元格属性,并将有问题的单元格保留为Locked
然后使用UserInterfaceOnly
set 为 true 来保护工作表(但要意识到这不适用于所有可能的宏更改,所以我通常会避免它。)
还有其他方法可以工作,但我认为这是最适合您的解决方案。如果没有,请添加评论让我知道。