选择特定的锁定单元格,留下其他单元格“不可选择”。

时间:2013-10-20 14:30:49

标签: excel excel-vba protection vba

在Excel VBA中,有没有办法选择特定的锁定单元格,同时保留其他单元格的“不可选”?

我有一张excel表,受到保护。我想让用户能够在工作表中选择特定的锁定单元格,同时不允许他们在同一工作表中选择其他锁定单元格。 基本上我有一个小的,基于单元格的日历,我希望他们能够在这个小范围内选择特定日期(锁定单元格),但是他们不需要在工作表中选择任何其他锁定单元格。 Excel表单保护似乎只允许表单“选择锁定单元格”。如果有办法通过VBA实现这一点,我很乐意听到它。在发布之前我确实查看了很多其他帖子。

1 个答案:

答案 0 :(得分:2)

保护工作表时,每个单元格中的行为由Locked属性定义。示例代码:

ActiveSheet.Unprotect
ActiveSheet.Range("A1").Locked = False
ActiveSheet.Range("A2").Locked = True
ActiveSheet.Protect
ActiveSheet.EnableSelection = xlNoRestrictions 'All the cells can be selected 

使用此代码,用户可以修改cell A1,但不能修改cell A2。请记住,默认情况下,Locked属性设置为True

澄清

保护适用于整个工作表。在单元级别,您可以做的就是依赖Locked属性。你不能得到的是不同(锁定/解锁)范围的不同行为。