Excel VBA – 安全时间戳

Excel VBA – 安全时间戳

我希望能够在我的Excel工作表上创build一个安全的时间戳。 我正在使用的VBA将自动添加当前用户的用户名,时间和用户将信息放入列A的date。因此,如果用户将某些内容放入单元格A1中,则B1会自动填充其用户名,并且C1会被填充与时间和date。 问题是,这种方法是不安全的,因为用户可以自动填充后更改信息。 我想添加代码到这个VBA所以它会locking信息填充后的所有三个单元格。

我打算使用保护表function,只允许用户“select解锁的单元格”,所以如果VBA可以自动locking单元格,那么用户将无法更改信息。

任何想法,build议或帮助将不胜感激! 谢谢!

Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim rCell As Range Dim rChange As Range On Error GoTo ErrHandler Set rChange = Intersect(Target, Range("A:A")) If Not rChange Is Nothing Then Application.EnableEvents = False For Each rCell In rChange If rCell > "" Then rCell.Offset(0, 1).Value = UserName() rCell.Offset(0, 2).Value = Date & " " & Time() Else rCell.Offset(0, 1).Clear End If Next End If ExitHandler: Set rCell = Nothing Set rChange = Nothing Application.EnableEvents = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub Public Function UserName() UserName = Environ$("UserName") End Function 

解锁列A:单元格并保护表单。

在你的代码中,在更改单元格和Me.Protect之前使用Me.Unprotect