作者:绿色风
分类:
时间:2022-08-17
浏览:137
楼主 kevinchengcw |
Q: 如何用vba代码根据边框线合并单元格及单元格区域文本? A: 代码如下:
- Sub test()
- Dim Rng As Range, R As Range, N&, I&, Str$
- For Each Rng In ActiveSheet.UsedRange '循环使用区个个单元格
- If Rng.Borders(xlEdgeTop).LineStyle <> xlNone And Rng.Borders(xlEdgeLeft).LineStyle <> xlNone And _
- (Rng.Borders(xlEdgeBottom).LineStyle = xlNone Or Rng.Borders(xlEdgeRight).LineStyle = xlNone) Then '如果单元格左侧及上方都有网格线而下方或右侧无网格线(即符合需合并区域左上角特征),则以该单元格为左上角,向右向下查找右下角特征单元格,从而确定合并区域
- With Rng
- For N = 0 To ActiveSheet.UsedRange.Column + ActiveSheet.UsedRange.Columns.Count - .Column - 1
- If .Offset(, N).Borders(xlEdgeRight).LineStyle <> xlNone Then Exit For
- Next N
- For I = 0 To ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - .Row - 1
- If .Offset(I).Borders(xlEdgeBottom).LineStyle <> xlNone Then Exit For
- Next I
- End With
- With Range(Rng, Rng.Offset(I, N)) '对于已找到的单元格区域范围,如果是两个以上的单元格,则
- If .Cells.Count > 1 Then
- Application.DisplayAlerts = False '关闭警告信息
- Str = "" '初始化字符串变量为空
- For Each R In .Cells '循环各个单元格串接单元格文本
- Str = Str & Trim(R.Value)
- Next R
- .Merge '单元格区域合并
- .Value = Str '合并后单元格区域的值等于串接后的文本
- Application.DisplayAlerts = True '打开屏幕刷新
- End If
- End With
- End If
- Next Rng
- End Sub
详见附件及素材源帖.
门窗表属性1.rar |
2楼 成就滋味 |
学习了 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一