|
楼主 |
发表于 2009-2-12 07:46
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
第1部分Range(单元格)对象
技巧15 合并单元格操作
15-4 取消合并单元格时在每个单元格中保留内容
如果需要取消技巧15-3中工作表B列“部门”的合并单元格,并且各个单元格均保留原合并单元格的内容,可以使用下面的代码。- #001 Sub UnMerge()
- #002 Dim StrMer As String
- #003 Dim IntCot As Integer
- #004 Dim i As Integer
- #005 With Sheet1
- #006 For i = 2 To .Range("B65536").End(xlUp).Row
- #007 StrMer = .Cells(i, 2).Value
- #008 IntCot = .Cells(i, 2).MergeArea.Count
- #009 .Cells(i, 2).UnMerge
- #010 .Range(.Cells(i, 2), .Cells(i + IntCot - 1, 2)).Value = StrMer
- #011 i = i + IntCot - 1
- #012 Next
- #013 End With
- #014 End Sub
复制代码 代码解析:
UnMerge过程取消工作表中B列中的合并单元格,并且各个单元格均保留原合并单元格的内容。
第7行代码取得B列每个合并单元格的内容。
第8行代码取得合并区域的单元格数量。
第9行代码使用UnMerge方法取消合并单元格。UnMerge方法将合并区域分解为独立的单元格,语法如下:
expression.UnMerge
第10行代码将原合并单元格的内容赋值给取消合并单元格后的区域。
第11行代码调整循环变量i的值,使下一次循环从下一个单元格区域开始。
运行UnMerge过程结果如图所示。
[ 本帖最后由 yuanzhuping 于 2009-2-16 22:28 编辑 ] |
|