Excel精英培训网

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

[已解决]如何实现高难度删除合并格等

[复制链接]
发表于 2017-9-3 20:38 | 显示全部楼层 |阅读模式
                  各位大神:               如何用VBA实现,将合并单元格的两行内数据整合为一行,并移动数据,先行谢谢各位大师的辛苦劳动,这厢有礼了!!!!!!!!
最佳答案
2017-9-13 16:23
删除行操作,不要指望速度。
  1. Sub aaa()
  2. Dim i&
  3. For i = [b65536].End(3).Row + 1 To 5 Step -1
  4.   If Cells(i, 2).MergeCells = True Then
  5.     If Application.CountA(Cells(i, 16).Resize(, 4)) > 0 Then
  6.       If Application.CountA(Cells(i - 1, 16).Resize(, 4)) > 0 Then
  7.         Cells(i - 1, 20).Resize(, 4) = Cells(i, 16).Resize(, 4).Value
  8.       Else
  9.         Cells(i - 1, 16).Resize(, 4) = Cells(i, 16).Resize(, 4).Value
  10.       End If
  11.     End If
  12.     Rows(i).Delete
  13.   End If
  14. Next i
  15. End Sub
复制代码

Book1.zip

6.17 KB, 下载次数: 11

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2017-9-3 22:45 | 显示全部楼层
不过还麻烦您,我忘了一句话,就是我的这个表内,多数行的就是规规矩矩的一行数据, 完整数据的一行。我讲忘了,非常抱歉!!!
回复

使用道具 举报

发表于 2017-9-13 16:23 | 显示全部楼层    本楼为最佳答案   
删除行操作,不要指望速度。
  1. Sub aaa()
  2. Dim i&
  3. For i = [b65536].End(3).Row + 1 To 5 Step -1
  4.   If Cells(i, 2).MergeCells = True Then
  5.     If Application.CountA(Cells(i, 16).Resize(, 4)) > 0 Then
  6.       If Application.CountA(Cells(i - 1, 16).Resize(, 4)) > 0 Then
  7.         Cells(i - 1, 20).Resize(, 4) = Cells(i, 16).Resize(, 4).Value
  8.       Else
  9.         Cells(i - 1, 16).Resize(, 4) = Cells(i, 16).Resize(, 4).Value
  10.       End If
  11.     End If
  12.     Rows(i).Delete
  13.   End If
  14. Next i
  15. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2017-9-13 22:02 | 显示全部楼层
大灰狼1976 发表于 2017-9-13 16:23
删除行操作,不要指望速度。

老师伟大!!!谢谢!!!!!!!!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 14:38 , Processed in 0.240352 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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