宏时间戳

时间:2015-05-05 08:06:57

标签: vba excel-vba excel-2010 excel

我设法写了上面提到的代码,但实际上并不是我需要的。我的目标部分实现但不完全。

我正在尝试创建一个日期戳,当第一列中的下拉菜单状态切换到另一个时,它会返回一个日期。

我面临的问题是高度重视并标记为粗体。 对于该特定状态,代码运行完美,返回开始日期和结束日期,但它停止执行其余的。

Private Sub Worksheet_Change(ByVal Target As Range)

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"
        Else
        If LCase(rng.Value) <> "clearing" 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, 5) = Date
                Cells(rng.Row, 5).NumberFormat = "dd.mm.yyyy"
            ElseIf rng.Offset(0, 13).Value = 3 Then
                Cells(rng.Row, 15) = Date
                Cells(rng.Row, 15).NumberFormat = "dd.mm.yyyy"
            Else
                If LCase(rng.Value) = "ongoing" Then
                    Cells(rng.Row, 8) = Date
                    Cells(rng.Row, 8).NumberFormat = "dd.mm.yyyy"
                Else
                    If LCase(rng.Value) = "in umsetzung" Then
                        Cells(rng.Row, 10) = Date
                        Cells(rng.Row, 10).NumberFormat = "dd.mm.yyyy"
                    Else
                        If LCase(rng.Value) = "prämiert" Then
                            Cells(rng.Row, 12) = Date
                            Cells(rng.Row, 12).NumberFormat = "dd.mm.yyyy"
                        End If
                    End If
                End If
            End If
        End If
    End If
    Next rng
End If
Fìn:
    Application.EnableEvents = True
End Sub

0 个答案:

没有答案