VBA獲取當天日期是否是星期1,如果不是星期1就在第2列篩選出開頭是產綫兩字的數據,如果是星期1,就執行下一步,再並獲取當前時間判斷是在08:00到19:00還是在20:00到07:00,如果是在08:00到19:00之間,就在第5列篩選出内容是D,如果在20:00到07:00之間的就在第5列篩選内容是N的,
时间: 2024-03-03 17:53:10 浏览: 18
以下是 VBA 代码,可以实现您的需求:
```
Sub FilterData()
Dim today As Date
Dim dayOfWeek As Integer
Dim currTime As Date
Dim filterValue As String
'获取当天日期和星期几
today = Date
dayOfWeek = Weekday(today, vbMonday)
'判断是否是星期一
If dayOfWeek <> 2 Then
'如果不是星期一,则在第2列筛选出以"產綫"开头的数据
Columns("B:B").AutoFilter Field:=2, Criteria1:="產綫*"
Else
'如果是星期一,则获取当前时间
currTime = Time
'判断当前时间段
If currTime >= TimeValue("08:00:00") And currTime <= TimeValue("19:00:00") Then
'如果是在08:00到19:00之间,则在第5列筛选出内容是D的数据
filterValue = "D"
Else
'如果是在20:00到07:00之间,则在第5列筛选出内容是N的数据
filterValue = "N"
End If
'在第5列筛选出符合条件的数据
Columns("E:E").AutoFilter Field:=5, Criteria1:=filterValue
End If
End Sub
```
注意,该代码默认每周的第一天为星期一,如果您的系统设置为每周的第一天不是星期一,则需要修改第9行的 `vbMonday` 参数。此外,您需要将代码中的列号、筛选条件等信息根据实际情况进行修改。