当我在A列中输入一个条目时,我试图在B列中发生日期戳事件。现在我可以在VBA中执行此操作而没有任何问题,我遇到的麻烦是还有一个条目将会最后进入D栏,并且在E栏中也需要一个日期戳。这可能吗。这是我到目前为止使用的代码示例。
Private Sub Worksheet_Change(ByVal Target As Range) 对于目标中的每个单元格 如果Cell.Column< = 3那么 如果Cells(Cell.Row,1)<> “”然后是细胞(Cell.Row,2)=现在 万一 下一个细胞 结束子
答案 0 :(得分:1)
如果您对用户输入的每个奇数列都没问题,并且时间戳在偶数列中(即您可以在A列中输入,TimeStamp将在B列中输入。您可以输入C列并且时间戳将放在D列等中。)然后你可以使用它:
Private Sub Worksheet_Change(ByVal Target As Range)
'Only write a timestamp of an odd column changes (because the timestamps go in the even columns)
If Target.Column Mod 2 > 0 Then
'Get the first part of the address, to get the actual column being changed
Dim columnAddress As String
columnAddress = Target.Address
If InStr(columnAddress, ":") > 0 Then
columnAddress = Left(columnAddress, InStr(columnAddress, ":") - 1)
End If
'This will cause the TimeStamp to be undeletable (kind of like na Audit).
'If you want the timestamp to disappear when you clear the column, uncomment the next few lines:
' If Not ActiveSheet.Range(columnAddress).Formula = "" Then
''Write the timestamp for the previous column
ActiveSheet.Range(columnAddress).Offset(0, 1).Formula = Now
' Else
' ActiveSheet.Range(columnAddress).Offset(0, 1).Formula = ""
' End If
End If
End Sub
您可以隐藏不需要显示时间戳的列。