Excel 两个时间戳代码同时工作?

Excel 两个时间戳代码同时工作?,excel,vba,timestamp,datestamp,Excel,Vba,Timestamp,Datestamp,我需要帮助编写一个代码,当在I中输入任何值时,该代码将允许在H列中输入日期/时间戳。现在,当在B列中输入值时,下面的代码允许在G中输入时间戳。我需要做什么 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,

我需要帮助编写一个代码,当在I中输入任何值时,该代码将允许在H列中输入日期/时间戳。现在,当在B列中输入值时,下面的代码允许在G中输入时间戳。我需要做什么

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("B:B"))
    If Not rChange Is Nothing Then
        Application.EnableEvents = False
        For Each rCell In rChange
            If rCell > "" Then
                With rCell.Offset(0, 5)
                    .Value = Now
                    .NumberFormat = "mm-dd-yy h:mm AM/PM"

                End With
            Else
                rCell.Offset(0, 5).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

您可以为第二个范围添加
ElseIf
,也可以在交叉点的主要检查中包含I:I,并根据接收添加/删除/修改的是B:B还是I:I来决定在何处填充时间戳。我将演示后者

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("B:B, I:I")) '<- note change
    If Not rChange Is Nothing Then
        Application.EnableEvents = False
        For Each rCell In rChange
            If rCell > "" Then
                With rCell.Offset(0, 5 + (rCell.Column = 9) * 6) '<- note change
                    .Value = Now
                    .NumberFormat = "mm-dd-yy h:mm AM/PM"

                End With
            Else
                rCell.Offset(0, 5 + (rCell.Column = 9) * 6).Clear '<- note change
            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
Private子工作表\u更改(ByVal目标为Excel.Range)
变暗rCell As范围
Dim rChange As范围
关于错误转到错误处理程序
设置rChange=Intersect(目标,范围(“B:B,I:I”))”,然后

使用rCell.Offset(0,5+(rCell.Column=9)*6)“我不太明白您需要做什么。您是否需要在两个不同的单元格中存储相同的时间戳?您已经有了执行此任务的代码-您是否尝试过使用它,看看是否可以让它在不同的范围内重复这些操作?我正在尝试获取两个不同的时间戳,一个用于取出设备,另一个用于归还设备,