我需要VBA
代码来过滤某个时间窗口的警报日志。警报出现并清除某些对象。我需要脚本在两个指定时间之间过滤掉警报(例如在凌晨1点之后出现并且在凌晨3点之前清除的那些警报),并将过滤后的数据复制到另一张表格。请参阅附图。
答案 0 :(得分:1)
我不得不稍微修改您的数据,因为没有提升和清算时间符合您的标准。
Option Explicit
Sub betweenTimes()
With Worksheets("Sheet5")
If .AutoFilterMode Then .AutoFilterMode = False
With .Range(.Cells(2, "A"), .Cells(.Rows.Count, "G").End(xlUp))
'as hardcoded values
'.AutoFilter field:=2, Criteria1:=">=" & Format(Date + TimeSerial(1, 0, 0), "yyyy-mm-dd hh:mm:ss")
'.AutoFilter field:=3, Criteria1:="<=" & Format(Date + TimeSerial(3, 0, 0), "yyyy-mm-dd hh:mm:ss")
'as values from I3:J3
.AutoFilter field:=2, Criteria1:=Format(.Parent.Cells(3, "I").Value2, "\>\=yyyy-mm-dd hh:mm:ss")
.AutoFilter field:=3, Criteria1:=Format(.Parent.Cells(3, "J").Value2, "\<\=yyyy-mm-dd hh:mm:ss")
With .Resize(.Rows.Count - 1, .Columns.Count).Offset(1, 0)
If CBool(Application.Subtotal(103, .Cells)) Then
Union(.Cells, .Cells(1, "XFD")).Copy Destination:=Worksheets("Sheet6").Cells(2, "A")
End If
End With
End With
If .AutoFilterMode Then .AutoFilterMode = False
End With
End Sub