VBA判斷當前時間是不是在08:00到19:00之内,如果是就在F列篩選出内容是D的數據,如果不是就篩選出内容是N的數據
时间: 2024-03-22 07:40:57 浏览: 9
你可以使用以下 VBA 代码来实现你的需求:
```vb
Sub FilterByTime()
Dim now As Date
now = Time
' 判断当前时间是否在 08:00:00 到 19:00:00 之间
If now >= TimeValue("08:00:00") And now <= TimeValue("19:00:00") Then
FilterByValue "D"
Else
FilterByValue "N"
End If
End Sub
Private Sub FilterByValue(ByVal value As String)
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") ' 将 "Sheet1" 替换为你的工作表名
' 筛选 F 列内容为 value 的数据
ws.Range("A1:F" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row).AutoFilter _
Field:=6, Criteria1:=value
End Sub
```
请将代码中的 "Sheet1" 替换为你的工作表名,并根据实际情况进行修改。在 `FilterByTime` 这个过程中,首先获取当前时间,然后判断时间是否在 08:00:00 到 19:00:00 之间,根据不同情况调用 `FilterByValue` 过程进行筛选。在 `FilterByValue` 过程中,使用 `AutoFilter` 方法进行筛选,其中 `Field` 参数表示要筛选的列的索引,`Criteria1` 参数表示要筛选的值。