我对VBA还是很陌生,但是我会尽力赶上,阅读所有内容,并尽我所能进行测试。经过数天的尝试,我根本无法弄清楚,请寻求帮助!
我特别需要的是: 如果将值9(只有9)输入到单元格U13中,则单元格AZ13将被解锁(没有其他输入的值将解锁AZ13)。或者,如果在单元格U14中输入了值9,则将单元格AZ14解锁,依此类推,将工作表向下降至大约U300 / AZ300。
我已使用以下代码在第一行U13 / AZ13上成功达到了预期的结果。
Private Sub Worksheet_Change(ByVal Target As Range)
activeSheet.Unprotect "password"
If Range("U13").Value <> 9 Then
Range("AZ13").Locked = True
ElseIf Range("U13").Value = 9 Then
Range("AZ13").Locked = False
End If
activeSheet.Protect "password"
End Sub
我一生无法上班的部分正在移至下一行。我已经尝试了上述代码和大约100个其他代码的几种变体,包括:
Private Sub Worksheet_Change(ByVal Target As Range)
activeSheet.Unprotect "password"
If Range("U13:U200").Value <> 9 Then
Range("U13:U200").Offset(0,31).Select.Locked = True
ElseIf Range("U13:U200").Value = 9 Then
Range("U13:U200").Offset(0,31).Select.Locked = False
End If
activeSheet.Protect "password"
End Sub
我已经尝试使用“ .select.locked”以及“ .locked”进行上述操作。 我只是在学习使用范围偏移量,但是确实尝试修改以仅将1个像元移到(0,1)上,以防万一我计算了错误的像元数,但这也不起作用。这个特殊的代码给了我一个运行时错误(类型不匹配)。调试指向此行:
If Range("U13:U200").Value <> 9 Then
非常感谢您提供正确方向的帮助!
凯