2017-10-16 65 views
0

我需要在不同的受保护的工作表中锁定多个单元格,但在通过宏输入数据后会锁定相同的工作簿。其作品以精为先的数据范围,但它总是打破在第二range.I尝试这样做:如何在受保护的工作表中使用VBA锁定多个单元格

ActiveWorkbook.Worksheets("Summary").Range("C3").Value = Range("B18").Value + Range("C18").Value 
ActiveWorkbook.Worksheets("Summary").Unprotect Password:="password" 
ActiveWorkbook.Worksheets("Summary").Protect Password:="password", UserInterFaceOnly:=True 
ActiveWorkbook.Worksheets("Summary").Range("A11:B15", "C3").Locked = True 

我也试过这个

ActiveWorkbook.Worksheets("Summary").Unprotect Password:="password" 
ActiveWorkbook.Worksheets("Summary").Protect Password:="password", UserInterFaceOnly:=True 
ActiveWorkbook.Worksheets("Summary").Range("A11:B15").Locked = True 
ActiveWorkbook.Worksheets("Summary").Range("C3").Value = Range("B18").Value + Range("C18").Value 
ActiveWorkbook.Worksheets("Summary").Range("C3").Locked = True 

每次他们停在距离C3。对于第一个脚本,我删除了“C3”,并且它很好;第二,我删除了整条线,它的工作原理。但我真的需要从编辑中锁定C3。有关如何做的建议? 错误消息总是运行时错误'1004':无法设置Range类的锁定属性。

+1

是C3任何机会合并单元格?如果是这样,检查[这个问题](https://stackoverflow.com/questions/9184818/error-1004-when-setting-range-locked) – Excelosaurus

+0

谢谢,Excelosaurus。我刚刚看到你的评论。不知道为什么我没有注意到它。是的,C3是一个合并单元格,我现在解决它。 – yoyo

回答

0

我建议检查这个question了。

使用.Lock打开或关闭锁定标志,一旦表格被保护,您将无法编辑任何锁定标志打开的单元格。

你需要做的... ...

ActiveWorkbook.Worksheets("Summary").Range("C3").Value = Range("B18").Value + Range("C18").Value 
ActiveWorkbook.Worksheets("Summary").Range("A11:B15", "C3").Locked = True 
ActiveWorkbook.Worksheets("Summary").Protect Password:="password", UserInterFaceOnly:=True 

编辑1:

ActiveWorkbook.Worksheets("Summary").Unprotect Password:="password" 
ActiveWorkbook.Worksheets("Summary").Range("C3").Value = Range("B18").Value + Range("C18").Value 
ActiveWorkbook.Worksheets("Summary").Range("A11:B15", "C3").Locked = True 
ActiveWorkbook.Worksheets("Summary").Protect Password:="password", UserInterFaceOnly:=True 
+0

我纠正了第一个脚本的错误。在锁定任何东西之前,我已经解除了工作表的保护。 – yoyo

+0

你必须保护工作表** AFTER **单元格被锁定,请参阅我的编辑 – Maldred

+0

谢谢,Maldred。但是整个工作表受UserInterFaceOnly保护,允许宏编辑和锁定单元格。 – yoyo

相关问题