失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Excel VBA中单元格的合并与拆分

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

时间:2019-06-04 03:15:41

相关推荐

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

对于合并单元格这里提供”从上到下“和“从下到上”合并单元格两种方式,”从上到下“的方法需要记录当前列有多少个相同的单元格和判断相应的单元格是否是合并单元格,过程相对来说繁琐一些,“从下到上”的方法则相对简单一些 ,代码量相对来说也比较少。

1.”从上到下“的方法

Sub 从上到下合并单元格()'Dim i, l, m As Integer'禁止弹出提示的对话框Application.DisplayAlerts = Falsek% = InputBox("请输入合并单元格所在的列")'*****************在1995-,excel工作簿包含65536行,但现在的office 中工作簿包含1048576行,'*****************从A列最后一行向上找,找到有数据的行为止l = [A65536].End(xlUp).Row'l记录当前表格的最后一行的行数For i = 1 To l'判断该单元格是否是合并单元格If Cells(i, k).MergeCells = True Then If Cells(i - m, k) = Cells(i + 1, k) Thenm = m + 1 'M代表一个有多少个相同的单元格 Else m = 0End IfElsem = 0If Cells(i, k) = Cells(i + 1, k) Then m = m + 1End IfEnd If Range(Cells(i, k), Cells(i + m, k)).MergeNextApplication.DisplayAlerts = TrueEnd Sub

2.”从下到上“的方法

Sub 从下到上合并单元格()Dim i, l As Integer'禁止弹出提示的对话框Application.DisplayAlerts = Falsek% = InputBox("请输入合并单元格所在的列")'*****************在1995-,excel工作簿包含65536行,但现在的office 中工作簿包含1048576行,'*****************从A列最后一行向上找,找到有数据的行为止l = [A65536].End(xlUp).Row'l记录当前表格的最后一行的行数For i = l To 2 Step -1If Cells(i, k) = Cells(i - 1, k) ThenRange(Cells(i, k), Cells(i - 1, k)).MergeEnd IfNextApplication.DisplayAlerts = True End Sub

单元格的拆分

当单元格进行合并之后就是如何进行拆分,拆分和合并原理大致相似,就是先判断是否是合并单元格,然后获取合并单元格的数目,进行拆分和填充。相应代码如下:

Sub 拆分单元格()Dim i, l, m As Integer'禁止弹出提示的对话框Application.DisplayAlerts = Falsek% = InputBox("请输入拆分单元格所在的列")'*****************在1995-,excel工作簿包含65536行,但现在的office 中工作簿包含1048576行,'*****************从A列最后一行向上找,找到有数据的行为止l = [A65536].End(xlUp).Row'l记录当前表格的最后一行的行数For i = 1 To l'判断该单元格是否是合并单元格If Cells(i, k).MergeCells = True Thenm = Cells(i, k).MergeArea.Count '记录合并单元格的个数Range(Cells(i, k), Cells(i + m - 1, k)).UnMerge‘拆分单元格Range(Cells(i, k), Cells(i + m - 1, k)).FillDown ’填充单元格i = i + m - 1 End If NextApplication.DisplayAlerts = TrueEnd Sub

`

如果觉得《Excel VBA中单元格的合并与拆分》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。