2015-10-28 48 views
0

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

刚刚发现其中相当符合我的要求的其他toppic一个sollution:How to protect cells in Excel but allow these to be modified by VBA script

只有我还在质疑的是,如果这是alwso证明3在一定范围内,而不是整个工作簿?

+0

为防止用户修改单元格,请保护它们(和工作表)。当您需要使用VBA修改它们时,只需对其进行解除保护,修改并在保护之后进行重新保护。 –

+0

然后,我最终会保护和不保护endles时间,因为我的代码包含很多用户/ VBA轮流编辑工作簿的部分。尽管谢谢! – Cornelis

+1

没有其他选择,对不起。但是您可以让两个Sub在VBA处理的开始和结束时保护和解除您调用的单元。 –

回答

2

Sollution

Worksheet.Protect “密码”,UserInterfaceOnly:=真

申请在一定范围内(我客串了folloing代码应该工作...?):

Worksheet.Sheets(“ControlSheet”)。Range(“M5:N19”)。Protect“Password”,UserInterfaceOnly:= True

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 

再后来又保护他们。

+0

PS bas de beer is een bazen spel #90s – Cornelis

相关问题