专栏名称: 果汁焗酱油
酱油君私人图书馆:定期更新果汁局公益讲座直播地址、课件及视频资源;不定期更新学习笔记,随心情发布酱油君的碎碎念。
目录
相关文章推荐
深圳晚报  ·  夜色圳好 | 有一种人生境界,叫活得有趣 ·  9 小时前  
深圳晚报  ·  夜色圳好 | 有一种人生境界,叫活得有趣 ·  9 小时前  
APPSO  ·  APPSO 招聘 | ... ·  昨天  
小众软件  ·  另外两件事[250211] ·  2 天前  
APPSO  ·  马斯克提议用 7000 亿收购 ... ·  2 天前  
木木说卡  ·  持续15年的羊毛盛宴,又来新玩法 ·  3 天前  
51好读  ›  专栏  ›  果汁焗酱油

Excel宏VBA小技巧系列 | 整合排序

果汁焗酱油  · 公众号  ·  · 2020-01-20 11:11

正文

上一篇笔记 分段加合 我们利用一段小程序求得了各部门的奖励系数总和:


接下来,我们把上面这张表 (Sheet2) 中的 提交日 发明部门 总奖励系数 的数据提取到另一张表 (Sheet5) 中:


设置整形变量n代表Sheet5的行,用整形变量m代表Sheet2的行。 在m循环访问Sheet2的第2至24行、且当用Len函数判断 “总奖励系数” 一列中的数据不为空时,将Sheet2中的提交日、发明部门、总奖励系数这三列提取到Sheet5。



我们把Sheet5第1-3列的数据复制到第5-7列,以便按照总奖励系数降序的方式进行排列:


随后,我们设置整形变量x和y来代表行,再设置三个字符串变量float1、float2、float3用于在排序时分别 “寄存” 提交日、发明部门、总奖励系数的数据。

这个降序排列的过程还是比较实用的,思路是: 从第x行开始,将第x行的总奖励系数与后面所有行 (用y表示,从x+1行至末行) 的总奖励系数进行比较,如果第x行的总奖励数据小于第y行的总奖励数据,则把两者进行交换,然后继续与剩下的行进行比较。 这样运行的结果是,第x行的总奖励系数永远是从第x行到末行的总奖励系数里最大的。

此外,还需注意的是, 在把第x行的数据与第y行的数据进行交换时,需要讲究一个顺序 ,即:先将第x行的对应数据赋给变量float暂存,随后将第y行的数据赋给第x行,最后再将在float中暂存的数据赋给第y行,由此达到“交换第x行与第y行的数据”的目的。







请到「今天看啥」查看全文