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