Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3282|回复: 10

[已解决]自动插入汇总行并汇总

[复制链接]
发表于 2017-6-1 18:37 | 显示全部楼层 |阅读模式
本帖最后由 lidayu 于 2017-6-1 23:19 编辑

因数据量太大且有几个工作簿手动做效益太慢,恳请老师赐教,如何能在大单位后自动插入汇总行并汇总,详情附件中。
自动插入汇总行并汇总.rar (62.49 KB, 下载次数: 5)
 楼主| 发表于 2017-6-1 19:55 | 显示全部楼层
回复

使用道具 举报

发表于 2017-6-1 19:57 | 显示全部楼层    本楼为最佳答案   
自动插入汇总行并汇总.rar (64.54 KB, 下载次数: 29)

评分

参与人数 1 +3 收起 理由
lidayu + 3 很给力

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2017-6-1 20:20 | 显示全部楼层

lisachen您好,效果很好就是要这样,能否添加下汇总行字体加粗,谢谢您帮助!
回复

使用道具 举报

 楼主| 发表于 2017-6-1 23:18 | 显示全部楼层

lisachen您好,用这句Union(Cells(js, 1), Cells(js, 2), Cells(js, 6)).Font.Bold = True实现字体加粗可以吗?
回复

使用道具 举报

发表于 2017-6-2 09:37 | 显示全部楼层
lidayu 发表于 2017-6-1 23:18
lisachen您好,用这句Union(Cells(js, 1), Cells(js, 2), Cells(js, 6)).Font.Bold = True实现字体加粗可 ...

自动插入汇总行并汇总.rar (62.91 KB, 下载次数: 14)

评分

参与人数 1 +3 收起 理由
lidayu + 3 大师风范、不吝赐教。

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2017-6-2 10:18 | 显示全部楼层

lisachen您好,这样更简洁运行更快,非常感谢您的帮助。
回复

使用道具 举报

 楼主| 发表于 2017-6-2 10:32 | 显示全部楼层

lisachen您好,有个不请之请不知能否再得到您的赐教,就是工作簿有时候会碰到“软、硬、套肩章都排在一起。
如果再添加A列为条件(例:软肩章同一单位的数量统计,以此类推)代码要如何更改。
自动插入汇总行并汇总 (1).rar (63 KB, 下载次数: 4)
回复

使用道具 举报

发表于 2017-6-2 10:46 | 显示全部楼层
本帖最后由 lisachen 于 2017-6-2 11:07 编辑
lidayu 发表于 2017-6-2 10:32
lisachen您好,有个不请之请不知能否再得到您的赐教,就是工作簿有时候会碰到“软、硬、套肩章都排在一起 ...

思路:   
aa = arr(i, 1) + Split(arr(i, 2), "→")(0)  
  If Not d.exists(aa) Then

因为涉及到排序等因素,需要改的太多
需要换一种思路









评分

参与人数 1 +3 收起 理由
lidayu + 3 不厌其烦的帮助,菜鸟我感激涕零。

查看全部评分

回复

使用道具 举报

发表于 2017-6-2 11:14 | 显示全部楼层
本帖最后由 lisachen 于 2017-6-2 11:18 编辑
  1. 只是作了修改思路,没精简
复制代码

  1. Sub lqxs()
  2.     Dim arr, i&, aa, r%, arr1()
  3.     Dim d, ks, js, j&, k, t
  4.     Set d = CreateObject("scripting.dictionary")
  5.     Application.ScreenUpdating = False
  6.     Sheet1.Activate
  7.     arr = [a1].CurrentRegion
  8.     For i = 2 To UBound(arr)
  9.         aa = arr(i, 1) + Split(arr(i, 2), "→")(0)
  10.         If aa <> aa1 Then
  11.             r = r + 1
  12.             ReDim Preserve arr1(1 To r)
  13.             arr1(r) = i
  14.             d(aa & r) = r
  15.         End If
  16.         aa1 = aa
  17.     Next
  18.     k = d.keys: t = d.items
  19.     For i = r To 1 Step -1
  20.         ks = arr1(i)
  21.         If i <> r Then
  22.             js = arr1(i + 1)
  23.         Else
  24.             js = UBound(arr) + 1
  25.         End If
  26.         Rows(js).EntireRow.Insert

  27.         Cells(js, 2) = k(i - 1) & " 小计"
  28.         Rows(js).Font.Bold = True

  29.         Cells(js, 6) = Application.WorksheetFunction.Sum(Range(Cells(ks, 6), Cells(js - 1, 6)))
  30.     Next
  31.     Application.ScreenUpdating = True
  32. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
lidayu + 3 赞一个

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 15:23 , Processed in 1.007096 second(s), 17 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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