VBA - AutoFilter将周期日期从RawData表附加到周末表

时间:2016-07-12 08:30:09

标签: excel vba excel-vba

我正在尝试创建一个过滤器,如上所述,将数据列表复制到我的工作簿的不同部分 - 到目前为止我有全天,白天,晚上和夜晚 - 所有这些都很容易完成,因为它只是复制整个数据设置,日夜和夜晚都是通过时间完成的 - 我有一组单元格,您可以设置您认为这些变量的限制,例如日期是0700 - 1900,晚上 - 1900-2200,晚上 - 2200 - 0700。

我的RawData排列如下 - 日期l时间l风速l WindDirection l Otherdata

任何人都可以提出一种方法,我可以使用

过滤掉周末
.AutoFilter

这是我到目前为止的代码 -

'Set filters for daytime, evening and nighttime period
'__________________________________________________________

'all
tblArr(1).Range.AutoFilter field:=1, Criteria1:="<>"

'day
tblArr(2).Range.AutoFilter field:=1, Criteria1:="<>"
tblArr(2).Range.AutoFilter field:=2, Criteria1:=">=" & Sheets("Raw Data").Range("D21").Value, Operator:=xlAnd, Criteria2:="<" & Sheets("Raw Data").Range("F21").Value

'evening
tblArr(3).Range.AutoFilter field:=1, Criteria1:="<>"
tblArr(3).Range.AutoFilter field:=2, Criteria1:=">=" & Sheets("Raw Data").Range("D23").Value, Operator:=xlAnd, Criteria2:="<" & Sheets("Raw Data").Range("F23").Value

'night
tblArr(4).Range.AutoFilter field:=1, Criteria1:="<>"
tblArr(4).Range.AutoFilter field:=2, Criteria1:=">=" & Sheets("Raw Data").Range("D25").Value, Operator:=xlOr, Criteria2:="<" & Sheets("Raw Data").Range("F25").Value

tblArr(number)是我将过滤后的数据发送到的范围。

请不要建议进行循环,因为以后的数据流程需要通过过滤来完成此部分

任何有用的帮助

1 个答案:

答案 0 :(得分:1)

如果您能够修改原始数据表,那么您可以添加一个包含=WEEKDAY(...)等公式的新列 - 然后您可以使用相同的过滤方法来隔离7(星期六)和1(太阳) - 或排除他们。