
本文于2023年5月27日首发于本人同名公众号:Excel活学活用,更多文章案例请搜索关注!
大家好,我是冷水泡茶,最近两天有点忙,就不做案例分享了,准备随便聊点什么,如题。
在日常工作中,我使用EXCEL是比较多的,相对来说比较熟悉。也用EXCEL解决实际工作中的很多问题,但前期主要局限于公式函数、数据透视表、条件格式、数据有效性(新版Office叫数据验证)等。要是在两年前,我对VBA还是不感冒的。我觉得它有点麻烦,“宏”常常跟病毒联系在一起。还要专门存为一种文件格式。还觉得它破坏了EXCEL的原生状态,还觉得各种各样的代码可能会造成EXCEL的不稳定,凡此种种。
现在看来,这些“感觉”大多是一种偏见,是无知限制了我的想像力。因为你不了解,所以生产偏见,这也算正常。
促使我对VBA生产兴趣的大概是这么一件事:
2019年起施行新的个人所得税法,按年综合计税,同时还有一次性年终奖的优惠政策。这样一来,对于高收入人群来说(我不是啊),就产生了较大的纳税筹划空间:将总收入合理地分配到按月发放的工资和年终一次性奖金上面,会节省不少税金。
于是,我就开始着手进行纳税筹划(我是搞财务的嘛),首先我们用EXCEL表来做:
1、假设总收入全部按工资发放,年终奖为0,我们计算出一个应纳税额A。作为初始比较以及计算节税比例的依据。
2、把总收入分成“工资”+“年终奖”,可以通过一个分配比例来做。然后分别计算应交税金并加总,与A比较。我们可以列出多个比例。最后我们选择一个节税最多的分配方案。
我搞了一个表,大概能给出一个近似的方案,但需要人工去选择判断。具体表格就不展示了,没有多大参考价值。
3、我还想到,每个人做一个表页,把分配比例尽量细分,比如从1%、2%、3%......100%,分别计算节税额,然后选择最大的一个。这个用公式函数是完全可以做到的。可以设置一个汇总表,列出姓名、总收入、最佳分配比例、应纳税额等,汇总表与明细表互相取数,设置好以后,应该可以做到:复制一张明细表,改一下人员姓名,结果自动得出。(可以考虑写一篇文章)
以上我们可以感觉到,用EXCEL表来做,人数不能多,要是有个几佰上仟人那可能就行不通了。必须得另寻他法。
于是,我将目光投向了VBA,在这之前稍微了解一点皮毛,但从未编写过一个完整的程序,就这样硬头皮就上了:
开始,我是把数据、计算过程都写到EXCEL表里,不断地读取-计算-写入,但由于频繁地读写,速度慢得很,甚至直接死机,根本没法进行下去,直到我学到了“数组”。
然后,我把数据读入数组,在内存中完成计算与比较,再把结果写入EXCEL表,一下子就豁然开朗,几百上千人根本不在话下。我把它放到某宝上,还成交了几笔。
从那以后,我对VBA就彻底改观了。主动到网上搜索各种VBA教程、技巧,初步了解了对象、属性、事件、方法等。并根据实际工作需要,编制了几个小应用。
我觉得吧,如果你在使用EXCEL过程中,感觉到有些不便,工作效率低下,重复劳动过多等等,你应该考虑学点VBA,也许能解决你的问题。
一家之言,不成系统,姑妄听之。我们下期再会!
本文使用 文章同步助手 同步,本文于2023年5月27日首发于本人同名公众号:Excel活学活用,更多文章案例请搜索关注!