工资表 | |||
姓名 | 工资 | 班组 | 厂区 |
张三 | 1500 | 1班 | A |
李四 | 1800 | 2班 | A |
王五 | 2100 | 1班 | B |
小李 | 2300 | 四班 | B |
小王 | 1225 | 5班 | C |
小张 | 1675 | 5班 | C |
小二 | 9853 | 快班 | C |
上图表格一,想要转换成如下表格二:
厂区 | 1班 | 2班 | 四班 | 5班 | 快班 | 合计 |
A | 1500 | 1800 | 3300 | |||
B | 2100 | 2300 | 4400 | |||
C | 2900 | 9853 | 12753 |
代码逻辑:
初始化arr数组。
制作一个字典获取函数getdict
第1步:获取“厂区”的字典dict1(不重复列表 )
Set dict1 = CreateObject("scripting.dictionary")
第2步:获取“班组”的字典dict2(不重复列表 )
Set dict2 = CreateObject("scripting.dictionary")
第3步:依据dict1和dict2的大小,在内存中分配brr匹配表格二,行列数已知
第4步:制作一个小函数
function 查找工资(厂区,班组)
这个小函数可以遍历arr数组,获取结果。
比如:查找工资(”A“,”1班“),可以获取结果1500,并直接写在brr中
网上很多VBA人写代码,从头到尾一个sub到底,这像拉面条一样,多个循环嵌套,也看不清内部逻辑。既不方面编写,也难以查错。自己调试也不方便,
而且这样的代码,还是知名大佬写的,完全带坏了新人,让新人望而生畏
第5步,双循环生成表格二,并计算累计值。
累计值可以分行向和列向统计,这个最简单。
做完这个小例子,就可以积累两个重要的通用函数:
字典获取函数getdict
查找工资(厂区,班组),双键查找函数
这是可以通用的函数,可以方便移用到其他vba工程去。代码库也逐步积累。。。。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至123456@qq.com 举报,一经查实,本站将立刻删除。