1234

ExcelHome技术论坛

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

帖子
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 193|回复: 2

[求助] 代码修正

[复制链接]

TA的精华主题

TA的得分主题

发表于 2025-1-26 20:03 | 显示全部楼层 |阅读模式
   Sub 订单分解()
   arr = Sheets("订单分解").UsedRange
   Set d = CreateObject("Scripting.dictionary")
   For j = 2 To UBound(arr)
   d(arr(j, 8)) = d(arr(j, 8)) + Val(arr(j, 11))
   Next j
   For Each key In d.Keys
   For j = 2 To UBound(arr)
   If arr(j, 8) = key Then
   arr(j, 12) = d(key)
   Exit For
   End If
   Next j
   Next key
   Sheets("订单分解").UsedRange = arr
   End Sub
    image.jpg 这段代码实现同类汇总,现需要实现下列图标同类逐步统计汇总,不是一次全部汇总,而是逐步同类汇总,请问大神该更改上述代码 image.png


image.jpg

TA的精华主题

TA的得分主题

发表于 2025-1-27 06:39 | 显示全部楼层
没有示例文件,大家如何帮你调试代码?最后两行订单总量列为何为空?

TA的精华主题

TA的得分主题

发表于 2025-1-28 06:12 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
由于是逐步累加,每次更新完字典的值,直接写入12列即可,代码如下:
Sub 订单分解()
    Dim arr As Variant
    Dim d As Object
    Dim i As Long, j As Long
   
    ' 读取当前工作表的使用范围到数组中
    arr = Sheets("订单分解").UsedRange
   
    ' 创建一个字典对象来保存同类的汇总值
    Set d = CreateObject("Scripting.Dictionary")
   
    ' 遍历数组的每一行(从第2行开始,假设第1行是标题)
    For i = 2 To UBound(arr, 1)
        Dim currentKey As String
        Dim currentValue As Double
        
        ' 获取当前行的关键键值(根据第8列作为分类标志)
        currentKey = arr(i, 8)
        
        ' 获取当前行需要累加的值(第11列)
        currentValue = Val(arr(i, 11))
        
        ' 更新字典中当前键的累积值(如果键不存在则初始化为0)
        If Not d.exists(currentKey) Then
            d(currentKey) = 0
        End If
        d(currentKey) = d(currentKey) + currentValue
        
        ' 将当前累加后的值放入数组的第12列
        arr(i, 12) = d(currentKey)
    Next i
   
    ' 将更新后的数组写回工作表
    Sheets("订单分解").UsedRange = arr
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

1234

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-3-9 04:10 , Processed in 0.019781 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表