在日常办公场景中,经常需要建立两列数据之间的映射关系,或对某一列中各元素的出现次数进行汇总统计。借助excel vba中的dictionary对象,能够高效完成此类任务。通过调用字典对象的keys与items属性,可分别提取所有键和对应值的集合,并配合excel内置的transpose方法,实现数据结构的快速转换,显著提高数据整理的效率与可靠性。
1、 打开VBA编辑器后,在顶部菜单栏点击“工具”→“引用”

2、 勾选“Microsoft Scripting Runtime”,启用字典功能支持。

3、 以A列为班级名称、B列为对应人数为例,构建班级与人数之间的精准映射,便于后续按班级快速查询人数信息。

4、 程序运行演示启动
5、 声明一个Dictionary类型的变量dic,并使用New关键字完成对象实例化。
6、 将A列内容设为字典的Key(班级名),B列对应数值作为Item(人数),逐行构建键值对。若某班级多次出现,则后一次赋值将自动覆盖前一次,例如“1班”在原始数据中重复出现,最终字典中保存的是其最后一次对应的数值——12人,从而自然实现按班级取最新记录的功能。
7、 利用dic.Keys获取全部不重复的班级名称,再通过Application.Transpose将其由一维数组转为垂直方向的列数据,并写入D列起始单元格(D1),写入区域高度根据字典实际键数量动态确定,确保去重后的班级列表完整、有序地填入D列。

8、 最终效果展示:











