如何用XlDynamicFilterCriteria多条件筛选本月与上月日期数据
问题根因
xlFilterDynamic操作符仅支持单个动态筛选规则,原生不支持同时传入两个XlDynamicFilterCriteria枚举值实现多条件匹配xlFilterValues操作符要求传入的是目标字段实际存在的单元格值数组,传入动态筛选枚举值无法匹配到任何数据,因此会过滤掉全部内容- 单次
AutoFilter调用仅支持一个Operator参数,重复声明该参数只会保留最后一个的赋值,因此你写两个xlFilterDynamic的写法只会生效最后一个筛选条件
解决方案
你可以通过计算上月和本月的起止日期,用常规日期范围筛选实现完全相同的需求,逻辑更稳定、跨Excel版本兼容性更好:
Sub FilterLastAndThisMonth() Dim startDate As Date Dim endDate As Date ' 计算上月第一天 startDate = DateSerial(Year(Date), Month(Date) - 1, 1) ' 计算本月最后一天 endDate = DateSerial(Year(Date), Month(Date) + 1, 0) ' 应用双条件日期筛选 ActiveSheet.Range("A1:B92").AutoFilter Field:=1, _ Criteria1:=">=" & startDate, _ Operator:=xlAnd, _ Criteria2:="<=" & endDate End Sub
内容的提问来源于stack exchange,提问作者smartini
相关产品推荐
相关产品推荐

