用VBA条件锁定EXCEL单元格的问题,高手进!

我要实现:当条件区域B2:B10中包含条件A2的内容(123),则锁定对应的C2:C10单元格
我用下面的语句只能判断一个单元格内的条件,而不能判断一段范围内的单元格条件,而且效果是锁定整个C2:C10范围,而我是希望按条件锁定,望高手指点

Private Sub Worksheet_Change(ByVal Target As Range)
If [B2] = 123 Then\******这里的[B2]我该如何表示成B2:B10?这里的123我该如何表示成A2?******\
With ActiveSheet
Application.EnableEvents = False
.Unprotect
.UsedRange.Cells.Locked = False
.Range("C2:C10").Locked = True
.Protect
.EnableSelection = xlUnlockedCells
Application.EnableEvents = True
End With
Else
ActiveSheet.Unprotect
End If
End Sub

以下代码是通过selectionchange事件写的,有点投机取巧,就是当选中C列的单个单元格时判断对应的B列中单元格里的数值是否等于A2中的数值,如果等于则禁止选中C列的单元格。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then
    [a1].Select
Else
    If Target.Column = 3 Then
        If Cells(Target.Row, 2) = [a2] Then
            Cells(Target.Row, 4).Select
        End If
    End If
End If
End Sub

如果要改你那个代码的话可以通过target.address判断改变单元格的地址是否为B2:B10

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-28
if not [B2:B10].find(123) is nothing then
相似回答