使用VBA我试图禁止插入和删除行和列,同时允许用户编辑单元格内容。我希望以下电话可以解决这个问题:
ActiveSheet.Protect Password:="SomePassword", _
AllowInsertingColumns:=False, AllowInsertingRows:=False, _
AllowDeletingColumns:=False, AllowDeletingRows:=False, Contents:=False
但这并不像我预期的那样有效。我仍然可以插入和删除行和列。
我错过了什么?实现上述目标的正确方法是什么?
答案 0 :(得分:2)
经过一些实验后我找到了答案。这是代码:
ActiveSheet.Cells.Locked = False
ActiveSheet.Protect Password:="SomePassword"
这会将工作表中所有单元格的“已锁定”属性设置为“False”,然后完全保护工作表。它起作用的原因是因为保护禁用了“锁定”设置为“True”的单元格的仅。
答案 1 :(得分:0)
据我所知,你需要Contents:=True
才能使其他一切正常运作!当然,这违背了用户能够编辑单元格内容的需要...锁定单元格。因此,在保护工作表之前,只需解锁所有单元格(格式化|保护|取消选中锁定的复选框)。
答案 2 :(得分:0)
似乎AllowInsertingRows等是仅当您使用Contents:= True锁定内容时才可用的选项。帮助信息中未明确说明这一点。
由于您希望内容可编辑,因此您必须将所有想要编辑的单元格标记为已解锁(将单元格或范围属性设置为已锁定为false)。然后使用Protect with Contents:= True。