【VBA案例019】合并单元格自适应大小
685 字
3 分钟
【VBA案例019】合并单元格自适应大小
大家好!
如果你是文职类工作,可能会遇到下面这种情况:
经常面对各种各样的表格,并且很多都是制式的,里边又充满个各种各样的格式,其中就有今天的主角儿:合并单元格。
而你的工作看似也不复杂,就是把合并单元格中显示不全的内容,通过调整单元格的大小来显示出来。
这种痛苦,只有手动调整过的人能懂。
所以,通过今天的案例讲解,将解决你的烦恼,文末视频对这个过程做了详细的讲解演示,希望对你有帮助。

以下是VBA代码。详细解析请看文末的视频。
调整合并单元格行高:
Sub 调整合并单元格行高() Dim cel As Range Dim rng As Range Dim n, r, c Dim mergeWidth, newHeight, celWidth
Set rng = Range("B4") For Each cel In rng If cel.MergeCells Then With cel.MergeArea mergeWidth = 0 For Each c In .Columns '合并区域中的每一个单元格 mergeWidth = mergeWidth + c.ColumnWidth '新合并区域列宽=每一列列宽宽的和 Next
.MergeCells = False '取消合并单元格
With .Cells(1) .WrapText = True '自动换行 celWidth = .ColumnWidth '记录取消合并后列宽,目的是调整回去 .ColumnWidth = mergeWidth '调整第一个单元格宽度 .EntireRow.AutoFit '自适应大小 newHeight = .RowHeight '记录此时的行高,即合并后新的行高 .ColumnWidth = celWidth '调整回原始列宽 End With
.MergeCells = True '合并单元格
n = .Rows.Count For Each r In .Rows r.RowHeight = newHeight / n * 1.1 '调整每一行的行高,并*1.1微调 Next .HorizontalAlignment = xlCenter '左右居中 .VerticalAlignment = xlCenter ''上下居中 End With End If NextEnd Sub调整合并单元格列宽:
Sub 调整合并单元格列宽() Dim cel As Range Dim rng As Range Dim n, r, c Dim mergeHeight, newWidth, celHeight
Set rng = Range("B4") For Each cel In rng If cel.MergeCells Then With cel.MergeArea
mergeHeight = 0 For Each r In .Rows '合并区域中的每一个行 mergeHeight = mergeHeight + r.RowHeight '新合并区域行高=每一行行高的和 Next
.MergeCells = False '取消合并单元格
With .Cells(1) .WrapText = True '自动换行 celHeight = .RowHeight '记录取消合并后行高,目的是调整回去 .RowHeight = mergeHeight '调整第一个单元格高度 .EntireColumn.AutoFit '列宽自适应大小 newWidth = .ColumnWidth '记录此时的列宽,即合并后新的列宽 .RowHeight = celHeight '调整回原始列宽 End With
.MergeCells = True '合并单元格
n = .Columns.Count For Each c In .Columns c.ColumnWidth = newWidth / n * 1.1 '调整每一列的列宽,并*1.1微调 Next .HorizontalAlignment = xlCenter '左右居中 .VerticalAlignment = xlCenter '上下居中 End With End If NextEnd Sub支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
【VBA案例019】合并单元格自适应大小
https://fanrich.eu.org/posts/程技/vba/vba案列/vba案例019合并单元格自适应大小/相关文章智能推荐
1
【VBA案例017】合并单元格
程技2023-10-23
2
【VBA案例018】取消合并单元格
程技2023-10-23
3
【VBA案例009】合并单元格汇总
程技2023-10-23
4
【VBA案例011】合并工作表
程技2023-10-23
5
【VBA案例012】合并工作簿
程技2023-10-23
随机文章随机推荐
樊笼










