我想锁定一个特定范围的单元格,然后说“" A1:A2"基于单元格的内容" B1"。如果细胞的内容" B1"除了" _"那么范围" A1:A2"应该被锁定。直到现在我一直在使用这段代码,但它似乎没有用。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Sheet1.Range("B1") <> "_" Then
Sheet1.Range("A1:A2").Locked = True
End If
End Sub
任何人都可以帮我解决这个问题吗
还有一个疑问: 因为我正在使用&#34; SelectionChange&#34;事件,因此一旦我选择了工作表中的任何其他单元格,它就会被激活。是否会使工作表工作更慢或挂起,因为我在工作表中有很多其他宏和按钮
答案 0 :(得分:0)
我会改为使用Worksheet_Change
事件,只有在B1
的内容发生变化时才会继续
这一行
Range("A1:A2").Locked = ([b1].Value <> "_")
如果A1:A2
不等于B1
,则锁定_
,如果确实如此,则解锁。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng1 As Range
Set rng1 = Intersect(Target, [b1])
If rng1 Is Nothing Then Exit Sub
Range("A1:A2").Locked = ([b1].Value <> "_")
End Sub