ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 484|回复: 6

[求助] 请教AutoFilter中Criteria的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-3-9 14:21 | 显示全部楼层 |阅读模式
ActiveSheet.Range("$A$1:$X$1422").AutoFilter Field:=21, Operator:= xlFilterValues, Criteria2:=Array(0, "2/28/2024")

这是录制了宏的语句,其中条件是所有2024的数据,只有一个, 条件不应该是 Criteria1:吗,怎么会是 Criteria2:?
请了解的大神指导一下。

TA的精华主题

TA的得分主题

发表于 2024-3-9 20:11 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
没有附件不好调试。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-12 13:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ykcbf1100 发表于 2024-3-9 20:11
没有附件不好调试。

测试数据很简单,建个表,在A列加一个月的跨年日期,比如
日期
2023/12/15
2023/12/16
2023/12/17
2023/12/18
2023/12/19
2023/12/20
2023/12/21
2023/12/22
2023/12/23
2023/12/24
2023/12/25
2023/12/26
2023/12/27
2023/12/28
2023/12/29
2023/12/30
2023/12/31
2024/1/1
2024/1/2
2024/1/3
2024/1/4
2024/1/5
2024/1/6
2024/1/7
2024/1/8
2024/1/9
2024/1/10
2024/1/11
2024/1/12
2024/1/13
2024/1/14
2024/1/15
2024/1/16
2024/1/17
然后在VBA开发工具中用代码测试
Sub autofiltertest()
Dim rng As Range            
Set rng = ActiveSheet.Range("A:A")
rng.autofilter Field:=1, Criteria2:=Array(0, "12/31/2023"), Operator:=xlFilterValues
End Sub

可以将Criteria2:改成Criteria1:看看有什么效果。我测试后是所有数据都被隐藏掉了,所以不明白这是什么原理。是不是和条件是数组有关

TA的精华主题

TA的得分主题

发表于 2024-3-12 14:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
刀彐犬句 发表于 2024-3-12 13:41
测试数据很简单,建个表,在A列加一个月的跨年日期,比如
日期
2023/12/15

网上查的说明:
Criteria2 可选 Variant 第二个条件(字符串)。 与 Criteria1 和 Operator 一起组合成复合筛选条件。 也用作日期字段的单一条件(按日、月或年筛选)。 后跟一个数组,该数组用于详述和筛选 Array(Level, Date)。 其中,Level 为 0-2(年、月、日),Date 为筛选期内的一个有效日期。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-3-12 14:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
AutoFilter语法,请参考
AutoFilter(Field,Criterial1,Operator,Criteria2,VisibleDropDown)
      (1)参数field:参数Field,指定想要基于筛选的字段的整数偏移量。从列表的左侧算起,最左侧的字段是字段1
      (2)参数Criterial1:指定判断条件(为字符串)
      (3)参数Operator,指定筛选的类型
        xlAnd:值为1。Criteria1和Criteria2的逻辑与。
        xlOr:值2。Criteria1或Criteria2的逻辑或。
        xlTop10Items:值3。显示最大值的项(在Criteria1中指定项目数)。
        xlBottom10Items:值4。显示最小值的项(在Criteria1中指定项目数)。
        xlTop10Percent:值5。显示最大值的项(在Criteria1中指定百分比)。
        xlBottom10Percent:值6。显示最小值的项(在Criteria1中指定百分比)。
        xlFilterValues:值7。筛选值。
        xlFilterCellColor:值8。单元格的颜色。
        xlFilterFontColor:值9。字体颜色。
        xlFilterIcon:值10。筛选图标。
        xlFilterDynamic:值11。动态筛选。
      (4)参数Criteria2:指定第二个判断条件(字符串),使用Criterial1和Operator构建复合判断条件。
      (5)参数VisibleDropDown:设置为True则显示所筛选字段的自动筛选下拉箭头;设置为False则隐藏所筛选字段的自动筛选下拉箭头。默认为True。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-21 13:32 | 显示全部楼层
大灰狼1976 发表于 2024-3-12 14:00
网上查的说明:
Criteria2 可选 Variant 第二个条件(字符串)。 与 Criteria1 和 Operator 一起组合成 ...

感谢解惑,应该就是“用作日期字段的单一条件(按日、月或年筛选)”这个功能

TA的精华主题

TA的得分主题

发表于 2024-3-21 13:51 | 显示全部楼层
请参考微软官方文档:

_Microsoft documentation:_

> [Range.AutoFilter 方法 (Excel)](https://learn.microsoft.com/zh-c ... c_id=M365-MVP-33461)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 01:35 , Processed in 0.031687 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表