如何使用VBA基于某些其他单元格的内容锁定单元格的内容

时间:2014-04-10 04:48:29

标签: excel vba excel-vba

我想锁定一个特定范围的单元格,然后说“" 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;事件,因此一旦我选择了工作表中的任何其他单元格,它就会被激活。是否会使工作表工作更慢或挂起,因为我在工作表中有很多其他宏和按钮

1 个答案:

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