阻止用户手动编辑单元格区域(但允许VBA执行)

时间:2015-10-28 13:00:51

标签: excel vba edit

我想阻止用户编辑特定范围的单元格。但是VBA应该保持这样做的能力。因此,当按下Excel中的按钮时,VBA应该能够修改Cell的值,而用户不能手动执行此操作。

刚刚找到了另一种符合我要求的toppic溶剂: How to protect cells in Excel but allow these to be modified by VBA script

我唯一还在质疑的是,这是否也适用于某个范围,而不是整个工作簿?

2 个答案:

答案 0 :(得分:2)

<强> Sollution

Worksheet.Protect&#34;密码&#34;,UserInterfaceOnly:= True

在某个范围上应用(我认为下面的代码应该可以工作......?):

Worksheet.Sheets(&#34; ControlSheet&#34;)。范​​围(&#34; M5:N19&#34;)。保护&#34;密码&#34;,UserInterfaceOnly:= True

答案 1 :(得分:1)

使用VBA保护工作表:

Dim sh As Worksheet
Dim myPassword As String
myPassword = "password"

For Each sh In ActiveWorkbook.Worksheets
    sh.Protect Password:=myPassword
Next sh

现在,如果您想使用VBA修改某些内容,可以使用以下方法取消保护:

Dim sh As Worksheet
Dim myPassword As String
myPassword = "password"

For Each sh In ActiveWorkbook.Worksheets
    sh.Unprotect Password:=myPassword
Next sh

然后再保护他们。