暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

完美Excel 2021-04-20
588

学习Excel技术,关注微信公众号:

excelperfect


“合并后居中”按钮是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,供有兴趣的朋友学习参考。

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

欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。

文章转载自完美Excel,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论