是否可以使用VBA创建锁定范围的公式?

时间:2014-04-25 07:15:49

标签: excel-vba vba excel

我需要根据另一个单元格的值锁定一系列单元格。使用工作表函数显然是不可能的,而subs只在click时运行。 我可以创建一个用VBA锁定单元格的公式吗?我试过了,但公式返回#VALUE!错误。

Function lo(range)
lo(range) = range.Select
Selection.Locked = True
End Function

感谢。

1 个答案:

答案 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,则相邻单元格将被锁定以进行编辑 希望这有助于你的目的。