我使用数据验证,用户只能在列表中选择两个值。
当单元格发生更改时,我还使用 Intersect 方法在下一个单元格中添加时间戳。
但是,用户仍然可以删除一个值并将单元格留空,这是我需要防止的。
是否可以在下面的代码中实现这一点?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Pass As String
Pass = "somepassword"
ActiveSheet.Unprotect Password:=Pass
If Not Intersect(Target, Me.ListObjects("Table1").ListColumns(6).DataBodyRange) Is Nothing Then
On Error GoTo ErrHandler
ActiveSheet.Unprotect Password:=Pass
Target.Offset(0, 1).Value = Format(Now, "dd.mm.yyyy hh:mm")
ActiveSheet.Protect Password:=Pass, DrawingObjects:=True, Contents:=True,
Scenarios:=True, AllowFiltering:=True
End If
ErrHandler:
Exit Sub
End Sub