【VBA】合并单元格 + 撤销合并单元格 |
您所在的位置:网站首页 › 怎么样取消合并单元格并填充 › 【VBA】合并单元格 + 撤销合并单元格 |
合并单元格
原始表 那么现在写出对应的VBA代码 1 整张表.sort 年级列,xlAscending , Header:=xlYes 2 if cells(某行,某列).values = cells(某行 - 1,某列) then range(cells(某行,某列),cells(某行-1,某列)).Merge 3 range(cells(某行,某列),cells(某行-1,某列)).Merge 4 Cells(总分列) = Cells(总分列) + Cells(分数列).Value 完整代码 Sub 合并单元格() Dim a, b As Integer, d As Range Application.DisplayAlerts = False Application.ScreenUpdating = False '定位到最后一行 a = Cells(Rows.Count, "h").End(xlUp).Row '对年级列进行排序 Set d = Range("h1").CurrentRegion d.Sort Cells(2, "h"), xlAscending, Header:=xlYes '对年级列进行合并 For b = a To 2 Step -1 '对数值进行累加 Cells(b, "j") = Cells(b, "j") + Cells(b, "i").Value If Cells(b, "h").Value = Cells(b - 1, "h").Value Then Range(Cells(b, "h"), Cells(b - 1, "h")).Merge Range(Cells(b, "j"), Cells(b - 1, "j")).Merge End If Next b Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub 还原表格,撤销和并单元格。要做到撤销合并单元格,在excel里面需要进行以下操作 1. 撤销年级列合并单元格(撤销前需要判断是否是合并单元格) 2.使年级列的值等于撤销合并列后第一个单元格的值(除此之外还需要注意excel撤销合并单元格后,程序就无法判断这一个格是合并单元格了,就无法赋值了,所以这里还需要加一层逻辑判断。如果单元格没有值,它的值就是上一格单元格的值) 3. 撤销总分列合并单元格 4.使总分列的值等于空值 那么现在写出对应的VBA代码: 1 if cells(某行,年级列).MergeCells = True Then cells(某行,年级列).unmerge 2 if cells(某行,年级列) = " " Then cells(某行,年级列).value = cells(某行-1,年级列) 3 cells(某行,总成绩列).unmerge 4 cells(某行,总成绩列) = " " 完整代码 Sub 撤销合并单元格() '判断是否是合并单元格 '如果是,将第一个单元格的值赋值给第二个 Dim a, b As Integer Application.DisplayAlerts = False Application.ScreenUpdating = False a = Cells(Rows.Count, "h").End(xlUp).Row() For b = 2 To a + 1 '如果是合并单元格,撤销 If Cells(b, "h").MergeCells = True Then _ '撤销年级列 Cells(b, "h").UnMerge '撤销总分列 Cells(b, "j").UnMerge '使总分列的值为空 Cells(b, "j").Value = "" '如果没有值,这个单元格的值等于上一个值 If Cells(b, "h") = "" Then Cells(b, "h").Value = Cells(b - 1, "h") End If Next b Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |