我需要根据另一个单元格的值锁定一系列单元格。使用工作表函数显然是不可能的,而subs只在click时运行。 我可以创建一个用VBA锁定单元格的公式吗?我试过了,但公式返回#VALUE!错误。
Function lo(range)
lo(range) = range.Select
Selection.Locked = True
End Function
感谢。
答案 0 :(得分:0)
以下是一个例子:
Sheet1代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value <> 1 Then
Target.Offset(0, 1).Locked = True
Else
Target.Offset(0, 1).Locked = False
End If
End Sub
重要提示:默认情况下,您必须将所有单元格锁定属性设置为False。
此工作簿代码:要使上述工作正常,您必须添加其他活动。
Private Sub Workbook_Open()
Sheet1.Protect userinterfaceonly:=True
'Thisworkbook.Sheets("Sheet1").Protect userinterfaceonly:= True
End Sub
以上是保护Sheet1。我使用了它的代码名称,尽管它也可以使用注释行编写 Sheet1是将所有单元格锁定属性设置为false的位置 因此,每次在单元格中输入内容时,如果不是1,则相邻单元格将被锁定以进行编辑 希望这有助于你的目的。