Excel二级合并单元格格式设置:合并同值单元格并添加指定边框
Excel二级合并单元格格式设置
需求说明
- 合并A列中与下方行值相同的单元格,并在合并区域下方添加细实线边框(RGB颜色代码:153,153,153);
- 对B列执行相同的合并操作,但边框需向右延伸5列(覆盖当前行至右侧第5列的范围)。
原始表格
| 一级分类 | 二级分类 | 美味度 | 成熟度 | 酸度 | 甜度 | 价格指数 |
|---|---|---|---|---|---|---|
| 水果 | 苹果 | 0.43 | 0.12 | 0.35 | 0.32 | 0.27 |
| 水果 | 梨 | 0.17 | 0.33 | 0.32 | 0.68 | 0.61 |
| 水果 | 梨 | 0.16 | 0.04 | 0.26 | 0.35 | 0.22 |
| 水果 | 草莓 | 0.26 | 0.74 | 0.40 | 0.07 | 0.37 |
| 水果 | 草莓 | 0.21 | 0.06 | 0.93 | 0.53 | 0.19 |
| 水果 | 草莓 | 0.21 | 0.18 | 0.38 | 0.07 | 0.04 |
| 水果 | 草莓 | 0.69 | 0.58 | 0.22 | 0.66 | 0.59 |
| 水果 | 草莓 | 0.60 | 0.14 | 0.01 | 0.99 | 0.68 |
| 水果 | 草莓 | 0.81 | 0.69 | 0.78 | 0.90 | 0.39 |
| 蔬菜 | 西兰花 | 0.29 | 0.32 | 0.31 | 0.46 | 0.77 |
| 蔬菜 | 西兰花 | 0.10 | 0.53 | 0.12 | 0.34 | 0.20 |
| 蔬菜 | 西兰花 | 0.28 | 0.97 | 0.02 | 0.45 | 0.84 |
| 蔬菜 | 西兰花 | 0.76 | 0.20 | 0.38 | 0.20 | 0.46 |
| 蔬菜 | 花椰菜 | 0.78 | 0.29 | 0.45 | 0.73 | 0.77 |
| 蔬菜 | 花椰菜 | 0.33 | 0.14 | 0.48 | 0.90 | 0.36 |
| 蔬菜 | 花椰菜 | 0.12 | 0.50 | 0.75 | 0.72 | 0.63 |
预期效果(NULL单元格表示与上方对应单元格合并,合并区域下方添加指定边框)
| 一级分类 | 二级分类 | 美味度 | 成熟度 | 酸度 | 甜度 | 价格指数 |
|---|---|---|---|---|---|---|
| 水果 | 苹果 | 0.43 | 0.12 | 0.35 | 0.32 | 0.27 |
| NULL | 梨 | 0.17 | 0.33 | 0.32 | 0.68 | 0.61 |
| NULL | NULL | 0.16 | 0.04 | 0.26 | 0.35 | 0.22 |
| NULL | 草莓 | 0.26 | 0.74 | 0.40 | 0.07 | 0.37 |
| NULL | NULL | 0.21 | 0.06 | 0.93 | 0.53 | 0.19 |
| NULL | NULL | 0.21 | 0.18 | 0.38 | 0.07 | 0.04 |
| NULL | NULL | 0.69 | 0.58 | 0.22 | 0.66 | 0.59 |
| NULL | NULL | 0.60 | 0.14 | 0.01 | 0.99 | 0.68 |
| NULL | NULL | 0.81 | 0.69 | 0.78 | 0.90 | 0.39 |
| 蔬菜 | 西兰花 | 0.29 | 0.32 | 0.31 | 0.46 | 0.77 |
| NULL | NULL | 0.10 | 0.53 | 0.12 | 0.34 | 0.20 |
| NULL | NULL | 0.28 | 0.97 | 0.02 | 0.45 | 0.84 |
| NULL | NULL | 0.76 | 0.20 | 0.38 | 0.20 | 0.46 |
| NULL | 花椰菜 | 0.78 | 0.29 | 0.45 | 0.73 | 0.77 |
| NULL | NULL | 0.33 | 0.14 | 0.48 | 0.90 | 0.36 |
| NULL | NULL | 0.12 | 0.50 | 0.75 | 0.72 | 0.63 |
编写的VBA代码
Sub merge_same_borders() Application.DisplayAlerts = False Application.ScreenUpdating = False Dim rng As Range For Each rng In Selection If rng.Value = rng.Offset(1, 0).Value And rng.Value <> "" Then Range(rng, rng.Offset(1, 0)).Merge Range(rng, rng.Offset(1, 0)).HorizontalAlignment = xlCenter Range(rng, rng.Offset(1, 0)).VerticalAlignment = xlCenter ElseIf rng.Value <> rng.Offset(1, 0).Value Then Range(rng, rng.Offset(0, 5)).Borders(xlEdgeBottom).Color = RGB(153, 153, 153) Range(rng, rng.Offset(0, 5)).Borders(xlEdgeBottom).LineStyle = xlContinuous Range(rng, rng.Offset(0, 5)).Borders(xlEdgeBottom).Weight = xlThin End If Next Application.ScreenUpdating = True End Sub
内容的提问来源于stack exchange,提问作者jwint
相关产品推荐
相关产品推荐

