所以基本上我希望能够在B1 <0时锁定B2:B7,当B2:B7 = 0且B2:B7为空时。
这是我到目前为止所做的。
SN:我刚刚开始这样做,所以我对某些事情有点无能为力。
Sub test_lock()
If Range("B1") < 0 And Range("B2:B7") Then
Range("B2:B7").Locked = True
ElseIf Range("B2:B7") > 0 Then
Range("B2:B7").Locked = False
End If
For Each rngTemp In Range("B2:B7").Cells
With rngTemp
If .Value > 0 Or Len(.Value) > 0 Then
.Locked = False
End If
End With
Next
End Sub
答案 0 :(得分:0)
这样的事情怎么样?它锁定了整个范围,然后解锁了所需的内容。
通过构建范围然后立即解锁,如果单元格数量很高,它应该更快。
注意注释掉的行,这只会将未锁定的单元格设置为绿色,以便于检查。
Sub temp()
Dim rCell As Range
Dim inRng As Range
Dim rRng As Range
set myRng = Range("A1:B2")
myRng.Locked = True
For Each rCell In myRng
If rCell.Value > 0 Then
If rRng Is Nothing Then
Set rRng = rCell
Else
Set rRng = Application.Union(rRng, rCell)
End If
End If
Next
rRng.Locked = False
'rRng.Interior.ColorIndex = 4
End Sub