状态变化的时间戳

时间:2015-04-27 09:08:14

标签: vba excel-vba excel-formula excel

我正在尝试创建一个宏来给出状态更改的时间戳,但遗憾的是到目前为止我还没有成功。在这方面有人可以帮助我。 下面提到的是我项目中的状态。 空地 等待开始 不断的 等候接听 关闭 finalisiert prämiert 阅读 在Umsetzung

提取日期的主要原因是计算特定状态的天数。

提前致谢

编辑更新的问题以包含代码:

If Not Intersect(Target, Columns(1)) Is Nothing Then
    On Error GoTo Fìn
    Application.EnableEvents = True
    Dim rng As Range
    For Each rng In Intersect(Target, Columns(1))
        If LCase(rng.Value) = "clearing" Then
            Cells(rng.Row, 2) = Date
            Cells(rng.Row, 2).NumberFormat = "dd.mm.yyyy"
            'Cells(rng.Row, 3).FormulaR1C1 = "maybe put the formula in here"
        ElseIf rng.Offset(0, 2).Value = "true" Then
            Cells(rng.Row, 4) = Date
            Cells(rng.Row, 4).NumberFormat = "dd.mm.yyyy"



      Else
      If LCase(rng.Value) = "wait for start" Then
            Cells(rng.Row, 6) = Date
            Cells(rng.Row, 6).NumberFormat = "dd.mm.yyyy"
            'Cells(rng.Row, 3).FormulaR1C1 = "maybe put the formula in here"
        ElseIf rng.Offset(0, 2).Value = 2 Then
            Cells(rng.Row, 8) = Date
            Cells(rng.Row, 8).NumberFormat = "dd.mm.yyyy"
        End If
        End If
    Next rng
End If
Fìn:
    Application.EnableEvents = True
End Sub

我有上面提到的代码,但实际上并没有满足我的要求。状态更改意味着:我的项目中有近6个状态,例如,当我将状态从等待开始更改为正在进行时,它应该返回状态等待开始日期和结束日期的开始日期,以便我可以计算天数。

1 个答案:

答案 0 :(得分:0)

这对你有用,不那么混乱......

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Column <> 1 Then Exit Sub
    If LCase(Target) = "clearing" Then Target.Offset(, 1) = Format(Date, "dd.mm.yy")
    If LCase(Target) = "true" Then Target.Offset(, 1) = Format(Date, "dd.mm.yy")
    '==========2 conditions==============
    If LCase(Target) = "something" And LCase(Target.Offset(0, 1)) = "maybe" Then
        MsgBox "Example with 2 conditions"
        Target.Offset(0, 4) = Format(Date, "dd.mm.yy")
    End If
End Sub