Excel精英培训网

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

如何将多选获取的几行数据进行合并,并重新排列?(升级版)

[复制链接]
发表于 2015-11-24 12:59 | 显示全部楼层 |阅读模式
本帖最后由 jessylake 于 2015-11-24 20:42 编辑

说明:除了卖出股价外都是对应数据相加,相加后,合并后的卖出股价=(发生金额合计数+印花税佣金过户费合计数)/卖出股数合计数。 合并前先选择要合并的数据,可以只选择合并区域中的一部分,比如D5:D6或E5:E6或D5:E6等,只要知道有几行数据就行。可以多选几个区,合并后的新数据放在最上面那个区的第一行,参与合并的数据先清空,然后把表中的数据重新排列,去掉中间的空行。 数据合并.zip (16.1 KB, 下载次数: 5)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2015-11-24 16:13 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2015-11-24 19:39 | 显示全部楼层
  1. Sub 多选()
  2. Dim a%, i%, j%, h%, h1%, hs%, hh%, arr, brr(1 To 1, 1 To 4)
  3. h1 = Selection.Areas(1)(1).Row
  4. For a = 1 To Selection.Areas.Count
  5.     h = Selection.Areas(a)(1).Row
  6.     hs = Selection.Areas(a).Rows.Count
  7.     arr = Cells(h, 4).Resize(hs, 4)
  8.     For j = 1 To 4
  9.         If j <> 2 Then
  10.             For i = 1 To hs
  11.                 brr(1, j) = brr(1, j) + arr(i, j)
  12.             Next
  13.         End If
  14.     Next
  15.     Cells(h, 4).Resize(hs, 4) = ""
  16. Next
  17. brr(1, 2) = (brr(1, 3) + brr(1, 4)) / brr(1, 1)
  18. Cells(h1, 4).Resize(1, 4) = brr
  19. '删除空白行
  20. hh = Cells(Cells.Rows.Count, 4).End(3).Row
  21. For i = hh To h1 Step -1
  22.    If Cells(i, 4) = "" Then Cells(i, 4).EntireRow.Delete
  23. Next
  24. Cells(Selection.Areas(1)(1).Row, 4).Select
  25. End Sub
复制代码
自己做了一个
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 08:31 , Processed in 0.285286 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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