欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > Excel VBA 字典应用示例

Excel VBA 字典应用示例

2025/5/8 1:16:41 来源:https://blog.csdn.net/zheng15ddi/article/details/147725784  浏览:    关键词:Excel VBA 字典应用示例
Private Sub CommandButton1_Click()On Error Resume Next ' 如果出现错误,不中断代码,而是继续正常运行Range("f2:i" & Rows.Count).Clear ' 清除f至i列第二行以下的所有单元格格式和内容' 声明变量Dim dic As Object, dic1 As Object, dic2 As ObjectDim lastrow As Long, i As Long' 创建三个字典对象Set dic = CreateObject("scripting.dictionary")Set dic1 = CreateObject("scripting.dictionary")Set dic2 = CreateObject("scripting.dictionary")' 获取A列最后一行有数据行的行号lastrow = Range("a" & Rows.Count).End(xlUp).Row' 遍历第二行至第lastrow行,分别设置dic、dic1、dic2的关键字-条目对For i = 2 To lastrowDim key As Stringkey = CStr(Cells(i, 1).Value) ' 获取A列的值作为字典键' 统计每个车间出现的次数If dic.Exists(key) Thendic(key) = dic(key) + 1Elsedic.Add key, 1End If' 统计每个车间的总工资If dic1.Exists(key) Thendic1(key) = dic1(key) + Cells(i, 4).ValueElsedic1.Add key, Cells(i, 4).ValueEnd If' 计算每个车间的平均工资dic2(key) = dic1(key) / dic(key)Next' 将结果输出到工作表Range("f2").Resize(dic.Count, 1) = WorksheetFunction.Transpose(dic.keys) ' 获取字典的关键字(车间名称)Range("g2").Resize(dic.Count, 1) = WorksheetFunction.Transpose(dic.items) ' 各车间出现次数(人数)Range("h2").Resize(dic2.Count, 1) = WorksheetFunction.Transpose(dic2.items) ' 各车间的平均工资Range("i2").Resize(dic1.Count, 1) = WorksheetFunction.Transpose(dic1.items) ' 各车间的总工资' 设置表头Range("f1:i1") = Array("车间名称", "人数", "平均工资", "总工资")' 格式化结果区域With Range("f1").CurrentRegion.Borders.LineStyle = xlContinuous ' 设置边框.HorizontalAlignment = xlCenter ' 字体水平居中.VerticalAlignment = xlCenter ' 字体垂直居中.Font.Bold = True ' 设置表头加粗End With' 释放字典对象Set dic = NothingSet dic1 = NothingSet dic2 = Nothing
End Sub

功能概述

本VBA程序利用字典对象实现了对Excel工作表中车间数据的多维度统计,能够同时计算:

  • 各车间出现次数(人数统计)
  • 各车间工资总额
  • 各车间平均工资

代码实现要点

  1. 字典对象创建:使用CreateObject("scripting.dictionary")创建三个字典分别存储不同统计指标

  2. 数据处理逻辑

    • 遍历数据行(从第2行到最后一行)
    • 以车间名称为键,累计出现次数和工资总额
    • 实时计算平均工资(总工资/人数)
  3. 结果输出

    • F列输出车间名称
    • G列输出各车间人数
    • H列输出平均工资
    • I列输出总工资

使用说明

代码放置位置

  1. Alt+F11打开VBA编辑器
  2. 在对应工作表的代码窗口中粘贴代码
  3. 或关联到ActiveX命令按钮

运行条件

  • 确保Excel已启用宏
  • 数据格式要求:
    • A列:车间名称
    • D列:工资数据

执行方式

点击工作表中的命令按钮即可自动完成统计,结果将规范输出到F-I列,并自动格式化(居中、加边框等)

技术优势

  1. 使用字典对象提高数据处理效率
  2. 单次遍历完成多项统计计算
  3. 结果自动格式化,提升可读性
  4. 错误处理机制保证程序稳定性

此方案特别适用于需要快速汇总分析分类数据的场景,通过简单修改可适配多种统计需求。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词