类对象支持库(不是扁平命令)。路径:支持库 → 扩展类库 → 组件扩展 / 数据表格筛选。
类型名必须写完整「筛选类 / 筛选UI类」。声明时自动创建,一般无需再调 创建*。
硬约束
- 逻辑对象类型名「筛选类」;界面控制器「筛选UI类」。
- 须先
筛选类.绑定数据表格,再设条件;UI 类再绑定到筛选类。 - 方法调用必须带括号。
- 表头 ▼ 须
数据表格.置表头筛选(真)且已绑定。
快速开始
筛选类 filt
筛选UI类 ui
filt.绑定(数据表格1)
ui.绑定(filt)
filt.筛选(0, "关键词")
筛选UI类/创建
共 1 条。
创建筛选UI
- 签名:
通用 创建筛选UI() - 说明:创建筛选 UI 控制器(一般直接写「筛选UI类 ui」即可)。
筛选类/创建
共 1 条。
创建筛选
- 签名:
通用 创建筛选() - 说明:显式创建一个数据表格筛选对象(一般直接写「筛选类 filt」即可,声明时自动创建)。
筛选UI类/方法
共 12 条。
绑定
- 签名:
无 绑定(筛选类 对象) - 说明:绑定到已创建的筛选类实例(共享同一数据表格)。
- 参数一│筛选类 对象: 如 filt。
置按钮宽
- 签名:
无 置按钮宽(整数 宽度) - 说明:设置 A/B/C 列头区 ▼ 按钮宽度(像素,最小 8)。
- 参数一│整数 宽度: 像素。
置激活色
- 签名:
无 置激活色(整数 颜色) - 说明:列已筛选时 ▼ 按钮背景色(ARGB,如 0xFF0078D7)。
- 参数一│整数 颜色: ARGB。
置使用内置菜单
- 签名:
无 置使用内置菜单(逻辑 开启) - 说明:真=使用内置 UI(默认 Excel 面板,或 置使用面板(假) 后的旧菜单);假=仅用 加入菜单项 定义的自定义菜单。
- 参数一│逻辑 开启: 真/假。
置使用面板
- 签名:
无 置使用面板(逻辑 开启) - 说明:真(默认)=▼ 打开 Excel 式统一筛选面板(排序/文本/勾选/清除集中一窗);假=旧式下拉菜单。自定义菜单开启时本项无效。
- 参数一│逻辑 开启: 真/假。
清空菜单
- 签名:
无 清空菜单() - 说明:清除自定义菜单项并关闭内置菜单。
加入菜单项
- 签名:
无 加入菜单项(整数 命令, 文本 标签, [文本 运算符], [文本 值]) - 说明:自定义 ▼ 弹出菜单项;点击时对当前列执行 置列筛选。
- 参数一│整数 命令: 菜单 ID。
- 参数二│文本 标签: 显示文字。
- 参数三│[文本 运算符]: 包含/等于/非空等。
- 参数四│[文本 值]: 与运算符配合。
置菜单背景色
- 签名:
无 置菜单背景色(整数 颜色) - 说明:▼ 弹出菜单背景色(ARGB,默认 0xFF2B2B2B)。
- 参数一│整数 颜色: ARGB。
置菜单文字色
- 签名:
无 置菜单文字色(整数 颜色) - 说明:▼ 弹出菜单文字色(ARGB)。
- 参数一│整数 颜色: ARGB。
置菜单悬停背景色
- 签名:
无 置菜单悬停背景色(整数 颜色) - 说明:▼ 弹出菜单项悬停背景色(ARGB)。
- 参数一│整数 颜色: ARGB。
置菜单悬停文字色
- 签名:
无 置菜单悬停文字色(整数 颜色) - 说明:▼ 弹出菜单项悬停文字色(ARGB)。
- 参数一│整数 颜色: ARGB。
加入菜单分割线
- 签名:
无 加入菜单分割线() - 说明:在自定义菜单中加入分割线。
筛选类/方法
共 48 条。
绑定
- 签名:
无 绑定(组件名 表格名) - 说明:绑定到窗体上的数据表格组件(直接写设计器中的组件名,无需引号)。
- 参数一│组件名 表格名: 如 数据表格1。
设置筛选
- 签名:
无 设置筛选([整数 列]) - 说明:Excel 式「启用自动筛选」:为指定列在 A/B/C 列头区显示 ▼(不立即筛数据)。省略列参数时,对当前选区内的列批量启用。多选单元格时可用 取区域列索引() 循环调用。须 数据表格.置表头筛选(真) 且已绑定。表头文字在单元格中,与 ▼ 无关。
- 参数一│[整数 列]: 0 起列索引;省略=当前选区列范围。
取筛选头行
- 签名:
整数 取筛选头行() - 说明:返回 ▼ 所在标题行的逻辑行号(0 起);未设置时 -1。
置筛选头行
- 签名:
无 置筛选头行(整数 行) - 说明:指定 ▼ 标题行逻辑行号(0 起)。数据区从该行下一行起算;筛选值列表亦从此行以下采集。一般框选后 设置筛选() 会自动设置,仅在标题不在选区时用。
- 参数一│整数 行: 0 起逻辑行。
取列运算符
- 签名:
文本 取列运算符(整数 列) - 说明:返回指定列当前筛选运算符:包含/等于/为空/非空;无规则时空文本。
- 参数一│整数 列: 0 起。
取列筛选值
- 签名:
文本 取列筛选值(整数 列) - 说明:返回指定列当前筛选比较值;为空/非空时通常为空文本。
- 参数一│整数 列: 0 起。
取已设置筛选列
- 签名:
通用 取已设置筛选列() - 说明:返回已显示 ▼ 的列索引数组(0 起,升序)。等同遍历 列可筛选。
取条件列
- 签名:
通用 取条件列() - 说明:返回已设置筛选条件(非仅 ▼)的列索引数组。
取列唯一值
- 签名:
文本数组 取列唯一值(整数 列, [整数 最大行], [整数 最大个数]) - 说明:返回该列数据区(标题行以下)去重值列表,供自定义筛选 UI。默认最多扫描 10000 行、返回 500 个值。
- 参数一│整数 列: 0 起。
- 参数二│[整数 最大行]: 扫描行数上限。
- 参数三│[整数 最大个数]: 返回值个数上限。
置列筛选值列表
- 签名:
无 置列筛选值列表(整数 列, 文本数组 值列表) - 说明:多值 OR 筛选:单元格等于列表中任一项则显示。空列表=本列全部隐藏。列表含全部去重值等效于清除该列筛选。
- 参数一│整数 列: 0 起。
- 参数二│文本数组 值列表: 要保留的单元格值。
取列筛选值列表
- 签名:
文本数组 取列筛选值列表(整数 列) - 说明:返回当前多值/等于筛选的有效值列表;无规则时为空数组。
- 参数一│整数 列: 0 起。
清除并取消
- 签名:
无 清除并取消([文本 区域]) - 说明:同时清除筛选条件并移除 ▼。无参=当前选区列;选区空则清除全部。文本=区域;整数=单列。
- 参数一│[文本 区域]: 省略则用当前框选。
取区域列索引
- 签名:
通用 取区域列索引() - 说明:返回当前选区涉及的列索引数组(0 起,去重升序)。用于框选「姓名|班级|…」等单元格后批量 设置筛选。
取消筛选列
- 签名:
无 取消筛选列(整数 列) - 说明:移除指定列的表头 ▼ 按钮(不清除该列已有筛选条件)。建议改用 取消筛选(列) 或 取消筛选(区域)。
- 参数一│整数 列: 0 起列索引。
取消筛选
- 签名:
无 取消筛选([文本 区域]) - 说明:移除 ▼ 按钮(不清除筛选条件)。无参=当前选区列;文本=区域如 A1:E1 或 A1:E1,C3:D5;整数=单列(同 取消筛选列)。
- 参数一│[文本 区域]: 省略则用当前框选列。
取选中区域
- 签名:
文本 取选中区域() - 说明:返回绑定表格当前选区 A1 表示法。连续选区如 A1:E1;Ctrl 多选不连续时为 A1:E1,C3:D5。等同 数据表格.取选中区域()。
是否已筛选
- 签名:
逻辑 是否已筛选([文本 区域]) - 说明:选区列中是否至少有一列已设置 ▼。无参=当前选区;可传区域或 filt.取选中区域()。
- 参数一│[文本 区域]: 省略则用当前框选。
取筛选状态
- 签名:
整数 取筛选状态([文本 区域]) - 说明:返回 0=均未设置 ▼,1=全部已设置,2=部分已设置(选区列混合状态)。
- 参数一│[文本 区域]: 省略则用当前框选。
清除筛选按钮
- 签名:
无 清除筛选按钮() - 说明:移除所有列的表头 ▼ 按钮(不清除筛选条件)。
列可筛选
- 签名:
逻辑 列可筛选(整数 列) - 说明:返回指定列是否已启用表头 ▼ 按钮。
- 参数一│整数 列: 0 起列索引。
筛选
- 签名:
无 筛选(整数 列, [文本 值=""]) - 说明:快捷列筛选(推荐)。仅写列 → 非空;写列+值 → 包含该值。修改后自动刷新表格。
- 参数一│整数 列: 0 起列索引。
- 参数二│[文本 值=”“]: 省略则筛选「非空」。
置列筛选
- 签名:
无 置列筛选(整数 列, [文本 运算符或值], [文本 值=""]) - 说明:完整列筛选。仅列→非空;列+文本→若文本为运算符(包含/等于/为空/非空)则用之,否则视为「包含」的比较值;三参数为 运算符+值。修改后自动刷新。
- 参数一│整数 列: 0 起列索引。
- 参数二│[文本 运算符或值]: 省略→非空;写值→默认包含;写运算符→见说明。
- 参数三│[文本 值=”“]: 与运算符配合使用。
重置
- 签名:
无 重置() - 说明:清除全部筛选与排序并刷新(等同同时 清除筛选() + 清除排序())。
排序
- 签名:
无 排序(整数 列) - 说明:按列排序视图(稳定排序,不移动逻辑行数据)。同列再次调用切换升/降序。
- 参数一│整数 列: 0 起列索引。
置排序
- 签名:
无 置排序(整数 列, [逻辑 升序=真]) - 说明:按指定列与方向排序视图;不改动稀疏单元格存储的逻辑行号。
- 参数一│整数 列: 0 起列索引。
- 参数二│[逻辑 升序=真]: 真=升序,假=降序。
追加排序
- 签名:
无 追加排序(整数 列, [逻辑 升序=真]) - 说明:追加次级排序键(多列排序);已有同列则更新方向。面板中 Ctrl+点击升序/降序等效。
- 参数一│整数 列: 0 起列索引。
- 参数二│[逻辑 升序=真]: 真=升序,假=降序。
清除排序
- 签名:
无 清除排序() - 说明:清除排序状态;若仍有筛选则保留筛选视图,否则恢复默认行序。
取排序列
- 签名:
整数 取排序列() - 说明:返回当前排序列索引;未排序返回 -1。
是否升序
- 签名:
逻辑 是否升序() - 说明:当前排序是否为升序;未排序时返回真。
有排序
- 签名:
逻辑 有排序() - 说明:是否已设置列排序。
取排序级数
- 签名:
整数 取排序级数() - 说明:返回当前排序键数量(多列排序时 >1)。
取列排序方向
- 签名:
整数 取列排序方向(整数 列) - 说明:返回指定列排序方向:1=升序,0=降序,-1=未参与排序。
- 参数一│整数 列: 0 起列索引。
列已排序
- 签名:
逻辑 列已排序(整数 列) - 说明:指定列是否参与当前排序(多列排序时可为次级键)。
- 参数一│整数 列: 0 起列索引。
解绑
- 签名:
无 解绑() - 说明:解除与数据表格的绑定。
清除列筛选
- 签名:
无 清除列筛选([整数 列=-1]) - 说明:清除指定列筛选;省略列参数则清除全部。
- 参数一│[整数 列=-1]: 0 起列索引;省略=清除全部。
清除筛选
- 签名:
无 清除筛选() - 说明:清除所有列的筛选条件并刷新。
取可见行数
- 签名:
整数 取可见行数() - 说明:返回当前筛选条件下可见的逻辑行数。
取总行数
- 签名:
整数 取总行数() - 说明:返回绑定表格的逻辑总行数(不受筛选影响)。
取隐藏行数
- 签名:
整数 取隐藏行数() - 说明:返回被筛选隐藏的逻辑行数(取总行数 - 取可见行数)。
是否已绑定
- 签名:
逻辑 是否已绑定() - 说明:返回是否已成功绑定到数据表格。
是否有筛选
- 签名:
逻辑 是否有筛选() - 说明:返回是否设置了至少一条列筛选规则。
行是否可见
- 签名:
逻辑 行是否可见(整数 行) - 说明:判断指定逻辑行在当前筛选条件下是否可见。
- 参数一│整数 行: 0 起逻辑行索引。
列已筛选
- 签名:
逻辑 列已筛选(整数 列) - 说明:返回指定列是否已设置筛选条件。
- 参数一│整数 列: 0 起列索引。
取逻辑行
- 签名:
整数 取逻辑行(整数 视图行) - 说明:将筛选后的视图行号转换为逻辑行号(置单元格 等 API 使用逻辑行)。
- 参数一│整数 视图行: 0 起,表格上看到的行号。
取视图行
- 签名:
整数 取视图行(整数 逻辑行) - 说明:将逻辑行号转换为当前筛选下的视图行号;隐藏行返回 -1。
- 参数一│整数 逻辑行: 0 起逻辑行索引。
取绑定名
- 签名:
文本 取绑定名() - 说明:返回当前绑定的数据表格组件名;未绑定返回空文本。
取筛选列数
- 签名:
整数 取筛选列数() - 说明:返回当前设置了筛选条件的列数。
刷新
- 签名:
无 刷新() - 说明:手动刷新表格(一般无需调用;筛选/清除后已自动刷新)。
易错对照
| 错误 | 正确 |
|---|---|
| 未绑定就筛选 | 先 filt.绑定(表格) |
| 类型写成「筛选」 | 必须「筛选类」/「筛选UI类」 |
| 表头无 ▼ | 置表头筛选(真) + 设置筛选/绑定 |