VBA学习笔记8:单元格的合并与拆分

如下图,需要实现1图到2图(单元格合并),或2图到1图(单元格拆分)。

1图:

2图:

合并单元格代码如下:

Sub 合并单元格()Dim k%, rng As RangeFor k = ThisWorkbook.Worksheets(1).UsedRange.Rows.Count To 2 Step -1  '从底层向上层合并,如果从上到下合并会报错(因为a2和a3合并后,a3为空值,则导致合并中断,再从a4a5合并,再a6a7合并,如果a2a3均为1班,a4为空,则会将a2a3a4合并在一起)If Cells(k, 1).Value = Cells(k - 1, 1) ThenCells(k - 1, 1).Resize(2, 1).Merge '如果上下值相等,则合并 cells(k-1,1).resize(2,1).mergeEnd IfNext k
End Sub'方法2
Sub 合并单元格2()Dim rng As Range, k%k = 1For Each rng In ThisWorkbook.Worksheets(1).Range("a2", Range("a1048576").End(xlUp))Do While rng.Value = rng.Offset(k, 0).Value And rng.Value <> ""  k = k + 1Looprng.Resize(k, 1).Merge '通过循环与某单元格相同的个数,循环后再一起合并k = 1Next rng
End Sub

取消合并单元格代码如下:

Sub 取消单元格合并()
Dim rng As Range, k%
For Each rng In Range("a2", Cells(Rows.Count, 2).End(xlUp)) '从a2单元格依次向下k = rng.MergeArea.Count 'k为合并的单元格个数rng.UnMerge '解除合并rng.Resize(k) = rng.Value '赋值
Next
End Sub

注意:

1、在合并单元格时,直接是一行一行向上合并,所以用了cells(行数,列数),因为rng只能是从上到下的。拆分单元格时,由于行数不固定,需要一个一个向下拆解,所以用了rng。
2、本来试图通过cell的行数和列数进行遍历,但是发现step不固定,导致a2-a5拆分后,就一直停留在a2(因为步长i一直为0,循环体中的i与步长i无关,后期需加强学习如何使用可变的步长进行循环,以下错误代码如下:)

Sub 取消单元格合并2()
Dim rng As Range, k%, m%
For k = 2 To ActiveSheet.UsedRange.Rows.Count Step i '步长m = Cells(k, 1).MergeArea.Count '本次要拆分的行数Range(Cells(k, 1), Cells(k + m - 1, 1)).UnMerge '要拆分的单元格Cells(k, 1).Resize(m) = Cells(k, 1).Valuei = m '步长,用于定位下一次拆分的起点
Next
End Sub
'循环体重i是常量,所以一直在第一个单元格循环

VBA学习笔记8:单元格的合并与拆分相关推荐

  1. Excel VBA中单元格的合并与拆分

    对于合并单元格这里提供"从上到下"和"从下到上"合并单元格两种方式,"从上到下"的方法需要记录当前列有多少个相同的单元格和判断相应的单元格是 ...

  2. vba excel学习笔记-从单元格获取数据,修改数据

    从单元格获取数据 获取sheet名字为 "sheetname"的表格中的第一行第五列的值 赋值给变量a a = Sheets("sheetname").Cell ...

  3. PHPSpreadsheet学习笔记——访问单元格

    文章目录 一.实例化对象 二.访问单元格 2.1获取单元格 2.2单元格赋值 2.3excel数据类型 2.3.1在单元格设置公式 2.3.2在单元格设置日期和时间值 2.3.3 设置带前导零的数字 ...

  4. Excel VBA 学习笔记13:单元格的格式

    Excel VBA 学习笔记13:单元格的格式 NumberFormat 属性 (Excel) vba excel 单元格格式设置 Excel VBA 单元格格式 python解决SNIMissing ...

  5. 合并单元格两行_28 HTML5标签学习——table单元格的合并

    成长是一辈子的事儿!大家好!我是时问新.分享前端.Python等技术,以及个人成长路上的那些事儿. 表格是可以进行单元格的合并的. 比如下图所示: 单元格A跨了两列,单元格E跨了两行.这就是单元格的合 ...

  6. VBA学习笔记3:合并同一工作簿下的多个表格

    VBA学习笔记3:合并同一工作簿下的多个表格 1.建立一个新的汇总表: 2.将其他sheet数据复制到汇总表中. 效果如下: 需要将3个sheet的表的数据汇总起来 汇总后的数据: 代码如下: Sub ...

  7. 陈表达VBA学习笔记-新建工作表鼠标右键菜单按钮

    陈表达VBA学习笔记-新建工作表鼠标右键菜单按钮:新建一个我的菜单按钮 设置对应的宏过程名称为 [我的菜单宏] 点击按钮弹窗信息,信息可自定义设置 详细代码如下: Sub 新建右键菜单()Dim 菜单 ...

  8. VBA学习笔记1:将同个文件夹中的工作簿汇总为一个工作簿,并建立目录超链接

    VBA学习笔记1:将同个文件夹中的工作簿汇总为一个工作簿,并建立目录超链接 1.将文件夹中的xlsx文件名复制到新工作簿: 2.将文件夹中的xlsx数据簿中的sheet复制到新表并重命名: 3.插入超 ...

  9. 实现前台表格中相同数据单元格的合并

    前些天接到组长分配的任务,让我这个小菜鸟实现单元格的合并.刚开始觉得很复杂,可是仔细思考过后其实还是很简单的,下面就和大家分享一下自己每次的方法和存在的缺点以及如何修改和最终的成品,希望能够对大家有些 ...

最新文章

  1. 压力管道流量计算公式_带你全面了解各种流量计!
  2. SAP ABAP编辑器里的Code Completion(代码自动完成)的等待时间设置
  3. 二,八,十,十六进制之间转换的相应方法
  4. CentOS提示另一个目前运行的程序正在访问软件信息
  5. 相比JPG,PNG矢量图片才是设计师的首选素材
  6. pytorch报错: invalid argument 0: Sizes of tensors must match except in dimension 0.
  7. Best Efforts 1PC 跨库事务
  8. poj 3264 Balanced Lineup RMQ问题
  9. 自动驾驶 6-1: 横向车辆控制介绍 Lesson 1: Introduction to Lateral Vehicle Control
  10. java obix_Gson序列化多态对象列表
  11. 针对口令的暴力破解攻击方式
  12. 计算机软件集成项目工程师上海,上海系统集成项目管理工程师积分政策,可以加多少分?...
  13. 投影仪与计算机连接方式,【投影网教程】投影仪连接电脑的方法
  14. 标准化建站开拓者王征,教你搭建一个有用的品牌官网
  15. 马哈鱼数据血缘分析工具
  16. 1.camera硬件接口学习-DVP,MIPI-CSI2,USB
  17. python充电时刻
  18. J.J. Abrams的神秘电影 amp; 一个解谜网站
  19. 微型计算机技术中 通过系统把CPU,【单选题】在微型计算机技术中,通过系统   把CPU、存储器、输入设备和输出设备连接起来,实现信息交换。...
  20. 我在成都火车站捡了个彝族美女 第1节:车站捡来的美女

热门文章

  1. [微信小程序入门-1]注册小程序帐号
  2. 5GC移动性管理(5GS mobility management ,5GMM)
  3. python selenium 自动下载文档
  4. 抖音服装类怎么运营变现;超详细抖音服装玩法大全。丨国仁网络资讯
  5. 使用selenium,xpath,线程池爬取斗鱼主播信息
  6. day12 字符流、字符缓冲流、转换流、对象操作流、Properties
  7. DNA合成--全国模拟(一)
  8. 【LaTeX入门】04、设置行间距、段间距
  9. 从“图”上看一场火山爆发后的连锁关联,竟对人类近现代历史进程产生如此之大的影响
  10. mysql自定义函数、存储过程、游标、触发器、事件(定时任务)