目录

1.使用vba的方式

1.1合并相同相邻单元格

1.2 拆分单元格

2.使用分类汇总+定位ctrl+G的手工方法


1.使用vba的方式

1.1合并相同相邻单元格

代码如下:

Sub RngMergeCondition() '批量合并单元格Dim rngUser As RangeDim rngMerge As RangeDim rngSelect As RangeDim i As Long, j As LongDim lngRowFirst As LongDim lngClnFirst As LongDim arr As VariantDim brr As VariantDim strTemp As StringDim lngBK As LongDim shtUser As WorksheetOn Error Resume NextSet rngSelect = SelectionSet rngUser = Application.InputBox("请选择需要合并的单元格区域!", Default:=rngSelect.Address, Type:=8)Set rngUser = Intersect(rngUser.Parent.UsedRange, rngUser)'使用Intersect规避用户选择整列数据If rngUser Is Nothing Then MsgBox "选择的单元格区域不能为空白": Exit Subarr = rngUser.ValueReDim brr(1 To UBound(arr), 1 To 2)'结果数组,第一列保存值,第二列保存合并行数For i = 1 To UBound(arr)strTemp = ""For j = 1 To UBound(arr, 2)strTemp = strTemp & "@@" & arr(i, j)'合并多列字符串为单个字符串Nextbrr(i, 1) = strTemp'字符串装入结果数组If i > 1 Then'如果不是第一行If brr(i - 1, 1) = strTemp ThenIf lngBK = 0 Then lngBK = i - 1'lngBK变量赋值结果数组用于存放合并行数的位置brr(lngBK, 2) = brr(lngBK, 2) + 1'累计相同值的行数ElselngBK = iEnd IfEnd IfNextApplication.ScreenUpdating = FalseApplication.DisplayAlerts = FalselngRowFirst = rngUser.Row'用户选择单元格区域的开始行lngClnFirst = rngUser.Column'用户选择单元格区域的开始列Set shtUser = rngUser.ParentFor i = 1 To UBound(brr)If brr(i, 2) > 0 ThenFor j = 1 To UBound(arr, 2)Set rngMerge = shtUser.Cells(i + lngRowFirst - 1, lngClnFirst + j - 1)rngMerge.Resize(brr(i, 2) + 1, 1).MergeNextEnd IfNextApplication.ScreenUpdating = TrueApplication.DisplayAlerts = True
End Sub

1.2 拆分单元格

代码如下:

Sub unMergeRng() '撤销合并单元格Dim rngUser As RangeDim rngMerge As RangeDim lngRowFirst As LongDim lngRowEnd As LongDim lngClnFirst As LongDim lngColEnd As LongDim lngRowMerge As LongDim i As LongDim j As LongDim rngSelect As RangeOn Error Resume NextSet rngSelect = Selection'用户初始选择的单元格Set rngUser = Application.InputBox("请选择需要撤销合并的单元格区域!", Default:=rngSelect.Address, Type:=8)'用户选择需要撤销合并的单元格区域Set rngUser = Intersect(rngUser.Parent.UsedRange, rngUser)'Intersect避免用户选择整列等单元格范围时,程序运算数据虚大,运算效率低下If rngUser Is Nothing Then MsgBox "选择的单元格区域不能为空白": Exit SublngRowFirst = rngUser.Row'运算范围的初始行lngRowEnd = lngRowFirst + rngUser.Rows.Count - 1'运算范围的结束行lngClnFirst = rngUser.Column'运算范围的开始列lngColEnd = lngClnFirst + rngUser.Columns.Count - 1'运算范围的结束列Application.ScreenUpdating = FalseFor i = lngRowFirst To lngRowEnd'遍历行For j = lngClnFirst To lngColEnd'遍历列lngRowMerge = Cells(i, j).MergeArea.Rows.Count'合并单元格的行数If lngRowMerge > 1 ThenWith Cells(i, j).Resize(lngRowMerge, 1).Select.UnMerge'撤销合并.Value = Cells(i, j)'填充数据End WithEnd IfNexti = i + lngRowMerge - 1'跳过已处理完的合并行NextrngSelect.SelectApplication.ScreenUpdating = True
End Sub

拆分前:

拆分后:

以上摘自

https://www.csdn.net/tags/Ntzakg4sNDMxMjUtYmxvZwO0O0OO0O0O.html

2.使用分类汇总+定位ctrl+G的手工方法

前提条件是向下有相同的单元格 如果向下是空的单元格需要先搞成相同单元格:

然后复制粘贴A列为值,然后就可以用一下的分类汇总了

以下摘自百度

百度安全验证https://baijiahao.baidu.com/s?id=1716740632111022951&wfr=spider&for=pc

这个方法是小编知道最早流传的经典操作技巧之一,我们先选中需要合并单元格字段列的单元格区域,在数据选项卡中的分级显示找到分类汇总,选择后会弹出一个提示,我们确定后会按照部门列字段进行分类汇总,接着对左边多出来的汇总列区域选中,按快捷键Ctrl+G或者F5定位空值,然后在开始选项卡中将定位的空单元格合并。

继续选中D列部门字段单元格区域,再次打开分类汇总对话框,然后点击全部删除,把多余的C列删除。这样操作下来,部门字段中相同内容的单元格就全部被合并了。

Excel按列合并相同相邻单元格和拆分单元格相关推荐

  1. excel多列合并成一列加符号_Excel多列变(合并)一列的方法详解

    文章介绍两种excel多列变一列的方法来实现excel 多列合并一列的效果. 下图所示的excel多列变一列:将A:D列的数据变为F列的效果.如何实现这样的excel 多列合并一列呢?介绍两种exce ...

  2. Excel 两列合并为一列中间加空格

    Excel 两列合并为一列中间加空格 需求:,在C1,C2中得到22 33,33 44. 步骤: 1.点击C列,在上方输入框中输入 =A1&" "&B1 得到 2. ...

  3. 数据预处理-Excel 两列合并为一列中间加空格

    一:问题描述 把Excel中两列数据合并为一列,并且以空格隔开. 二:方法一 把Excel中的两列数据复制粘贴到txt文本文档中,再从txt文本文档中把数据粘贴到excel中的某一列. [注意]:数据 ...

  4. vue el-table的合并单元格与拆分单元格

    vue el-table的合并单元格与拆分单元格 methods: {objectSpanMethod({ row, column, rowIndex, columnIndex }) {const f ...

  5. poi操作excel之列合并

    poi操作excel之列合并 每篇一句励志:学会快乐,因为只有开心度过每一天,活得才精彩. // 此代码只支持多列合并 // 参数1:sheet.参数2:要合并的列 public static XSS ...

  6. excel多列合并成一列加符号_Excel中如何将每行空格数据隔开为多列,以及如何合并多列数据为一列...

    投稿/科研合作:daixjdoctor@126.com 联系我们:137704924或372699348 群1-5:科研讨论.文献汇报群 网站:http://www.sleep-brain.com/ ...

  7. Excel如何删除合并单元格列后的空单元格

    如下图是某公司员工信息表,因为一部分员工离职所以姓名中列含有一些空单元格,现在想要快速删除这些空单元格 选中部门列合并单元格数据区域,然后点击下图选项(Excel插件,具体安装方法百度即可,不问不作具 ...

  8. 【删除含有合并单元格的excel某列】

    删除含有合并单元格的excel某列: 提示:这里简述项目相关背景: 项目场景:昨天帮朋友忙,需求是删除excel的某一列,而该列被包含在合并单元格中. 我以为弄个dataframe多简单的事情,没想到 ...

  9. Excel使用VBA合并单列、多列单元格

    Excel使用VBA合并单列.多列单元格 多列合并相同内容单元格 合并相同单元格的功能如下同,让相同内容的单元格合并为一个. 具体代码如下: Sub 相同内容合并单元格() ' ' '' Dim i, ...

最新文章

  1. 第二个冲刺期的第七天
  2. NGUI的异步场景加载进度条
  3. java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id null
  4. 零基础编程入门python视频-Python编程零基础小白快速入门完整全系列精品课
  5. 为你的程序添加监听器
  6. JSON 常量详情参考 (内含对中文不转义的参数)
  7. 传递function_boost库function与bind
  8. 永久白嫖!发现官方漏洞,希望不要被封杀!
  9. Fantom已开始网络升级,大约需2个小时
  10. 转 - Web新人(偏前端)应该怎样学习(个人观点,勿喷)
  11. C# 自定义sqlserver表值函数
  12. SPOJ PHRASES Relevant Phrases of Annihilation(后缀数组 + 二分)题解
  13. 在html显示php代码,html跳转php只显示源代码
  14. Mac OS X 下 Eclipse 安装 SVN 插件 subclipse 及JavaHL 方法
  15. yzl的javascript学习笔记
  16. missing separator 解决方法
  17. Java调用kjb文件
  18. 名帖121 文徵明 小楷《琴赋》
  19. 鸿蒙系统不能自动连wifi,Hi3861_WiFi IoT工程:WiFi自动连接
  20. TCP/IP协议模型详解四ICMP、ICMPv6

热门文章

  1. 【过程挖掘算法4】Alpha Miner及其系列算法
  2. 对自己狠一点,离成功近一点
  3. SudaMod-81.0 / crDroidAndroid-8.1(android-8.1.0_r20)红米3 2018年5月3日更新
  4. 概率论 1 随机试验 样本空间 随机事件事件间的运算
  5. python画拓扑图权值是线条粗细_拓扑图线条流动效果
  6. 存储器国产化为何选3D NAND作为突破口?
  7. [NN]前向神经网络的tf.keras详细实现教学
  8. Introduction to TurboFan
  9. Delphi FastReport 小结
  10. MacTex 使用教程