前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA实用小程序74:将合并单元格转换为跨列居中

VBA实用小程序74:将合并单元格转换为跨列居中

作者头像
fanjy
发布2021-05-07 10:36:12
2.3K0
发布2021-05-07 10:36:12
举报
文章被收录于专栏:完美Excel完美Excel

“合并后居中”按钮是Excel界面中一个非常方便的功能,很多人都喜欢使用合并单元格。然而,对合并单元格进行一些操作会带来一些问题,Excel会给出下图1所示的提示消息。

图1

这往往会让人感到困惑。

其实,Excel有一个隐藏着的替代选项,称为“跨列居中”,与合并单元格效果相同,如下图2所示。

图2

虽然两者看起来效果不同,但实质上是不同的,“跨列居中”不会导致上图1所示的错误信息提示。

单击“开始”功能区“对齐方式”(或者“字体”、“数字”)组右下角的对话框启动器,或者按“Ctrl+1”组合键。在弹出的“设置单元格格式”对话框中选择“对齐”选项卡,在“水平对齐”下拉列表中选择“跨列居中”,如下图3所示。

图3

如果已经有一个包含大量合并单元格的工作簿,如果要一个单元格一个单元格地改变其格式设置,没有必要,因为可以使用下面的VBA程序。

Sub ConvertMergedCellsToCenterAcross()

Dim c As Range

Dim mergedRange As Range

'检查当前是否为工作表

If TypeName(ActiveSheet) <>"Worksheet" Then Exit Sub

'遍历已使用的所有单元格

For Each c In ActiveSheet.UsedRange

'如果合并且单行

If c.MergeCells = True Andc.MergeArea.Rows.Count = 1 Then

'为合并单元格设置变量

Set mergedRange = c.MergeArea

'取消合并单元格并应用跨列居中

mergedRange.UnMerge

mergedRange.HorizontalAlignment =xlCenterAcrossSelection

End If

Next

End Sub

跨列居中不适用于跨行,因此,上面的VBA程序专门设计为不删除任何包含多行的合并单元格。

注:本文整理自exceloffthegrid.com,供有兴趣的朋友学习参考。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档