如何在受保护的工作表中使用VBA锁定多个单元格

时间:2017-10-16 20:39:50

标签: excel-vba vba excel

我需要在不同的受保护工作表中锁定多个单元格,但是在按宏输入数据后锁定相同的工作簿。哪个适用于第一个数据范围,但它总是在第二个范围内打破。我试过这个:

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 个答案:

答案 0 :(得分: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