ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 写一段VBA代码,将同一项目的借方、贷方都累计到同项目第一行,删除其他行。

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-9 20:13 | 显示全部楼层
一招秒杀 发表于 2024-8-9 12:17
点点鼠标,拖拉几下就好,何必写什么代码

上万行数据、汇总的项目几千项的时候,还是需要代码的!

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-9 20:17 | 显示全部楼层
kyxfyzg 发表于 2024-8-9 13:11
原表格位置上生成新表格,并且将其他多余的数据删除,希望能够帮助到你

感谢,感谢,谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-9 20:22 | 显示全部楼层
于箱长 发表于 2024-8-9 13:16
你把E列项目,打乱顺序再试一下

只是空行没有删除,数据是正确的。我使用代码的前提就是先排序,排序是前期工作

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-9 20:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

是在您的代码基础上修改的,谢谢!!!

TA的精华主题

TA的得分主题

发表于 2024-8-9 23:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
字典+数组的基本套路!!!!!!!!!!!!!!!!!!!!!!!
屏幕截图 2024-08-09 235249.png
屏幕截图 2024-08-09 235511.png

TA的精华主题

TA的得分主题

发表于 2024-8-10 00:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
shiruiqiang 发表于 2024-8-8 21:43
Sub test()
Dim arr, brr
Dim dic

为什么不在上面的循环中就把姓名放到字典的item中?
屏幕截图 2024-08-10 000131.png

TA的精华主题

TA的得分主题

发表于 2024-8-10 07:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
lhteee 发表于 2024-8-9 20:22
只是空行没有删除,数据是正确的。我使用代码的前提就是先排序,排序是前期工作

行 自己喜欢就好

TA的精华主题

TA的得分主题

发表于 2024-8-10 07:55 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
lhteee 发表于 2024-8-9 20:13
上万行数据、汇总的项目几千项的时候,还是需要代码的!

它好像有个名字,叫Power Query,上万算什么,小意思了。那些复杂冗长的代码很容易出错的,很初级的人才只会写那些弱爆了的幼稚代码。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-11 12:05 | 显示全部楼层
一招秒杀 发表于 2024-8-10 07:55
它好像有个名字,叫Power Query,上万算什么,小意思了。那些复杂冗长的代码很容易出错的,很初级的人才 ...

可惜,不会用

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-11 12:26 | 显示全部楼层
  1. Sub 汇总()
  2. Set 字典 = CreateObject("scripting.dictionary")
  3. arr = Range([a3], Cells(Cells(Rows.Count, 1).End(xlUp).Row, 3))
  4. For i = 1 To UBound(arr)
  5. If 字典.exists(arr(i, 1)) Then
  6. 字典(arr(i, 1)) = Array(字典(arr(i, 1))(0), 字典(arr(i, 1))(1) + arr(i, 2), 字典(arr(i, 1))(2) + arr(i, 3))
  7. Else
  8. 字典(arr(i, 1)) = Array(arr(i, 1), arr(i, 2), arr(i, 3))
  9. End If
  10. Next i
  11. brr = Application.Transpose(Application.Transpose(字典.items))
  12. [e3:g100001].Clear
  13. [e3].Resize(UBound(brr), UBound(brr, 2)) = brr
  14. End Sub
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 12:15 , Processed in 0.051098 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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