ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 筛选个数据还出错

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-14 16:52 | 显示全部楼层
一江春水1688 发表于 2024-12-14 15:28
贴代码要审核,贴图吧,两种写法:

这个解构赋值不懂,{1:sdate,3:edate}这就是个对象,=号右边的是数组,那filter筛选是怎么就(【v】)这不是一行数据吗?不行感觉晕掉了!

TA的精华主题

TA的得分主题

发表于 2024-12-14 17:19 | 显示全部楼层
楼主代码的思路是对的。问题出在哪了?

Snipaste_2024-12-14_17-18-29.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-12-14 17:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
yangqianming 发表于 2024-12-14 16:52
这个解构赋值不懂,{1:sdate,3:edate}这就是个对象,=号右边的是数组,那filter筛选是怎么就(【v】) ...

数组也是对象
let x = [3,5,7]
可以看成是如下对象
{0:3, 1:5, 2:7}
其中0、1、2是数组对象x的key也就是属性,key是从0开始的自然数
3、5、7j是数组对象x的value也就是属性值

{1:sdate,3:edate} 表示取右侧数组key(也就是索引)为1的元素,赋值给sdate,edate类似理解

TA的精华主题

TA的得分主题

发表于 2024-12-14 17:53 | 显示全部楼层
yangqianming 发表于 2024-12-14 16:52
这个解构赋值不懂,{1:sdate,3:edate}这就是个对象,=号右边的是数组,那filter筛选是怎么就(【v】) ...
( [v] )这不是一行数据吗
对呀,一行数据不就是一个数组吗?假设是一个名为x的数组

原本,你写成的代码是
arr.forEach((x) => ......)   //x是arr的1行数据,本质上x就是1个1维数据
现在,你写成
arr.forEach(([v]) => ......)  //现在把x改写成 ([v])
这就是一次解构赋值
[v] = x
还可以这样解构:
[a, , c] = x //a=x[0],c=x[2],忽略了x[1]
对应的forEach代码如下:
arr.forEach(([a, , c]) => ......)  //参数a、c获取每行数据的0、2号元素

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-14 18:06 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
一江春水1688 发表于 2024-12-14 17:53
对呀,一行数据不就是一个数组吗?假设是一个名为x的数组

原本,你写成的代码是

谢谢您的解释!

TA的精华主题

TA的得分主题

发表于 2024-12-14 18:13 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-12-16 09:12 | 显示全部楼层
你已基本上了解jsa的套路了,再到菜鸟教程学js的网站上,一天看个3到5页,不出半个月,估计就不会再来论坛求助了

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-16 18:26 | 显示全部楼层
Again123456 发表于 2024-12-16 09:12
你已基本上了解jsa的套路了,再到菜鸟教程学js的网站上,一天看个3到5页,不出半个月,估计就不会再来论坛 ...

不行,现在理解能力和记忆力都下降了,多亏有您的热心细心的指点才略知一点点,感谢您的鼓励!

TA的精华主题

TA的得分主题

发表于 2024-12-16 20:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
yangqianming 发表于 2024-12-16 18:26
不行,现在理解能力和记忆力都下降了,多亏有您的热心细心的指点才略知一点点,感谢您的鼓励!


常有人说一学就会,一用就”废“,其实就是练习太少
网站上的教程,不仅要看,还要变着花样练习,其中的示例,自己一个字符一个字符敲,不要依赖代码自动补全。
以楼主的本贴内容为素材,涉及了很重要的知识点【解构赋值】。看看如何【变着花样练习】?

下面3行代码:
let [sdate,edate]=[Range('b1')(),Range('d1')()];//已经掌握
let {1:sdate,3:edate} = Range('a1').CurrentRegion().flat();//刚刚理解
let [,sdate,,edate] = Range('a1').CurrentRegion().flat();//刚刚理解

变个花样,仿照上面第2、3代码,左边该写什么代码:
let ...... = Range('a1').CurrentRegion();
let ...... = Range('a1').CurrentRegion();

再变花样,【开始时间,结束时间】,取自如图区域2、区域3,又该如何解构赋值?
Snipaste_2024-12-16_20-42-48.png
期待楼主写出的代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-12-16 22:37 | 显示全部楼层
一江春水1688 发表于 2024-12-16 20:48
常有人说一学就会,一用就”废“,其实就是练习太少
网站上的教程,不仅要看,还要变着花样练习,其中 ...

菜鸟学习一下,解构那个我觉得实在没有必要,知道就好了,因为用那种形式,我直接用[,,a,c]这样子的形式早写用了
Snipaste_2024-12-16_22-36-05.png

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-25 02:52 , Processed in 0.036854 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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