首先,我们这次在8个单元格中随机提取数据,但是提取的时候加入判断——如果RAND随机数大于0.5,就返回提取的数值本身,如果小于0.5就返回0。
由于RAND结果是随机的,大于和小于0.5的数量平均下来机会接近,因此大多数情况下,F列中提取的结果中,0和非0值数量相当。但是F列中能取到几个值的可能都有。
现在,对VBA代码稍作修改后,可以运行。当F列提取值的个数和数字相加结果恰好为128同时满足的时候就结束程序,得到要的结果。
这个过程的计算量相比前面就要大很多了,因此凑数的时间也一定会多出不少。
我试着运行了两次,用时分另是2.71秒和11.44秒,还是挺快的。
总体上,大家可以对比,用计算机快速凑数,毕竟是计算机速度,与我们人脑计算,优势是非常大的。
以后,涉及到凑数的问题,要报销发票的时候,你就可以用VBA来实现了。
怎么样,今天的案例你学会了吗?希望对大家有所帮助。
有同学问我们的VBA课程和训练营什么时候上线,我计划8月份先上线VBA入门课,大概10来节的样子。然后就上线VBA实战营,通过实战案例教大家快速解决工作中的批量处理问题,如——
- 批量汇总工作表/工作薄
- 批量生成图表
- 批量合并工作表/工作薄
- 自动化处理和计算
- ……
我会从我自己长期实践积累中精选实用VBA案例,为大家详细讲解,面向实战快速掌握VBA的应用,关键是学会用VBA解决工作是常见问题的处理。