我设法写了上面提到的代码,但实际上并不是我需要的。我的目标部分实现但不完全。
我正在尝试创建一个日期戳,当第一列中的下拉菜单状态切换到另一个时,它会返回一个日期。
我面临的问题是高度重视并标记为粗体。 对于该特定状态,代码运行完美,返回开始日期和结束日期,但它停止执行其余的。
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