根据特定单元格中的数字,例如B1,B3中锁定单元格的数量应该等于该数字。例如,如果B1为20,则应锁定B3:B23。同样,如果B1为1000,则锁定单元格应为B3:B1003。下面的代码已启动,但不适用于range命令。代码有什么问题? (我正在使用excel 2010)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tValue As Integer
If Target = Range("B1") Then
If Not IsNumeric(Target.Value) Then
MsgBox "Not a valid value"
Else
tValue = Target.Value + 2
Range("B3" & tValue, "B1003").Locked = False
Range("B3", "B" & tValue).Locked = True
End If
End If
End Sub
谢谢
答案 0 :(得分:0)
代码正确锁定单元格。但是,您需要保护锁定的工作表才能生效。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tValue As Integer
If Target = Range("B1") Then
If Not IsNumeric(Target.Value) Then
MsgBox "Not a valid value"
Else
ActiveSheet.Unprotect Password:="secret"
tValue = Target.Value + 2
Range("B3" & tValue, "B1003").Locked = False
Range("B3", "B" & tValue).Locked = True
ActiveSheet.Protect Password:="secret"
End If
End If
End Sub
如果您不想设置密码,只需从Unprotect和Protect语句中删除该参数即可。