ExcelVBA 大哥做小学数学;我用ADO回答网友问题
网友提问



回答网友问题:
如果只需要答案,直接拉到文章最后,如果想学习知识,顺序往下看!
一、先判断是否能平分
有余数就是不能平分,没有就是可以平分

二、如果向上取整

三、先用数字假设
将判断是否有余数和向上取整的功能写在一起
(1)假设把10分给3个人

(2)假设把9分给3个人

四、先用一种水果测试
现在我就手工的写出这3个人:张三、李四、王五
后面我告诉你如何自动生成



截止到这里,我是让我大哥算的!这些都与计算机没有直接联系!不能说用计算机写的就是计算机知识!
后面是我写的,才是计算机知识呢!

因为涉及多个商品,所以我把表改装一下

例如我要将上表中商品编码是A01的筛选出来

现在用我大哥算好的代码,写进来
友情提示:别忘记记录集中的下标(不算表头,从第1条记录开始)是从0开始的计数的
运行结果

看一下下标取对了,就可以应用了
友情提示:运行前记得把张三、李四、王五原有的内容都删除
运行后



现在只有一种商品,我们可以应用多种商品
for循环对应的next别忘记写

完整代码:需要答案的小伙伴直接用下面代码就可以了
更改你的商品名称在Crr数组中,更改你的姓名:张三李四王五,在arr数组中
运行结果
友情提示:运行前删除 张三、李四、王五原有表中的数据




关于:张三、李四、王五等人名工作表的生成
详见:ExcelVBA第一季第一集
https://www.bilibili.com/video/BV1rt4y1a72y

关于商品编码去重后放到数组中
详见ExcelVBA第二季笔记 22.1.5
或 ExcelVBA第二季第22集
https://www.bilibili.com/video/BV1rt4y1a72y

我的目的不是写个代码卖给谁,而是让大家看到我写的方法,所以我没有把它完全写活!至少现在学过的人还能看懂!您想让哪块写活,再去完善!
此方法,肯定要比筛选Autofilter筛选后粘贴到一个地方再算要快。也比筛选数组的代码量要少很多。但是它同样有一个缺点,就是不符合数据库规则的表格很麻烦。例如
能转换,但是这些建议初始状态下就规范,以免给后续工作找麻烦
本来新人写代码就手生,再为这些没必要的事情增加逻辑思考和不必要的代码量,不值当的


写在最后:本代码在office365下测试通过! office2016~2021 如果软件安装没有问题都应该可以使用! WPS或office早期版本没有测试过,不一定能用!