工作表更改功能与条件

时间:2018-01-05 23:32:42

标签: vba function worksheet

我正在尝试编写一个代码,按代码按日期输入销售数据,以便他们可以在Column A中包含今天日期的行中输入数据,并锁定所有其他行。此外,一旦他们在该行的任何单元格中输入数据,该单元格就会被锁定。

请参阅下面的相同代码。我在这里遇到了运行时错误。我将所有单元格保持在单元格格式的未锁定状态,并在执行此代码之前锁定了工作表。

Private Sub Worksheet_Change(ByVal Target As Range)

i = Target.Row  
If Range("A" & i) = Date Then

ActiveSheet.Unprotect Password:="jayant1234"
Target.Locked = True
ActiveSheet.Protect Password:="jayant1234"

Else
Target.Value = ""
MsgBox ("Don't Try To Mess Around")
End
End If
End Sub

`

1 个答案:

答案 0 :(得分:-1)

考虑将Target参数作为String而不是Range传递。

Private Sub Worksheet_Change(ByVal Target As String)

i = Range(Target).Row
If Range("A" & i) = Date Then

    ActiveSheet.Unprotect Password:="jayant1234"
    Range(Target).Locked = True
    ActiveSheet.Protect Password:="jayant1234"

Else
    Range(Target).Value = ""
    MsgBox ("Don't Try To Mess Around")
    End
End If
End Sub

Sub Test()

Worksheet_Change ("A1")

End Sub