WPS表格JSA中的AutoFilter的使用

场景: 我想将自动筛选后的数据赋值给一个对象,然后对这个对象内的数据进行处理。 代码大致如下: let autoFilter = ActiveSheet.AutoFilter(1,'=1', xlAnd, undefined, undefined); let range = ActiveSheet.AutoFilter.Range(); let data = range.Value(); 问题: 虽然从表格上看到筛选是成功的,但是通过range对象赋值的data始终包含全部的行,而不是筛选后的行。 请问如何解决这个问题? 另外,帮助文档的AutoFilter对象说明开头有两个示例是VBA代码,不知道什么意思。
广东省
浏览 1156
收藏
1
分享
1 +1
6
+1
全部评论 6
 
善狼如我
let rng = Range('A1').CurrentRegion.SpecialCells(xlCellTypeVisible) //得到所有的可见区域
· 陕西省
回复
 
Eric Hu
根据前面兄弟的回复,我改了代码。 let autoFilter = ActiveSheet.AutoFilter(1,'=1', xlAnd, undefined, undefined); let range = autoFilter.Range; let data = range.Value(); (之前有两个错误:1、没有使用autoFilter;2、Range是属性不是方法)。 改成上面的代码后,提示autoFilter没有Range属性,AutoFilter方法没有返回一个AutoFilter对象。 所以我把代码改成 ActiveSheet.AutoFilter(1,'=1', xlAnd, undefined, undefined); let range = ActiveSheet.AutoFilter.Range(); let data = range.Value(); 但是这样仍然拿不到筛选后的数据,而是全部数据。 问题仍然没有解决。 AutoFilter帮助文档也里面找不到有价值的信息https://open.wps.cn/previous/docs
· 广东省
回复
 
王仕琼
我想将自动筛选后的数据赋值给一个对象,然后对这个对象内的数据进行处理。 代码大致如下: let autoFilter = ActiveSheet.AutoFilter(1,'=1', xlAnd, undefined, undefined); let range = ActiveSheet.AutoFilter.Range(); let data = range.Value(); range 是你想要的吗?再仔细想下。data 不应该是autoFilter.Range()吗?
· 广东省
1
回复
Eric Hu
感谢回复,我可能没说清楚。我要把表格数据提出来做其他处理,所以要拿到筛选后所有单元格的值。我的思路是 range 变量接收筛选后的 Range,然后赋值给 data
· 广东省
回复