Excel 自动拟合合并单元格的行高
我们可以看到,如果我们试图将大量的数据放入一个单元格,那么现在如果我们移动到另一个单元格,数据就会被显示出来;解决这个问题的唯一方法是增加单元格的行高。对于只有一个单元格,我们可以通过使用 “Alt + Enter “命令来调整行高,但当我们试图合并不同高度的单元格时,我们会面临同样的问题;我们无法使用该命令。请阅读本教程,了解如何解决这个问题,即如何在Excel中自动调整合并单元格的行高。
自动调整Excel中合并单元格的行高
这里我们先插入一个VBA模块,然后运行代码并选择一个单元格区域来完成任务。让我们看看一个简单的过程,了解如何在Excel中自动适应合并的单元格的行高。
第1步
考虑以下图片,一个Excel工作表有两个不同高度的单元格被合并——。
现在要调整行高,右击工作表名称,选择查看代码,打开vba应用程序,然后点击插入,选择模块,然后在文本框中输入 “方案”,如下图所示。
示例
Option Explicit
Public Sub AutoFitAll()
Call AutoFitMergedCells(Range("a1:b2"))
Call AutoFitMergedCells(Range("c4:d6"))
Call AutoFitMergedCells(Range("e1:e3"))
End Sub
Public Sub AutoFitMergedCells(oRange As Range)
Dim tHeight As Integer
Dim iPtr As Integer
Dim oldWidth As Single
Dim oldZZWidth As Single
Dim newWidth As Single
Dim newHeight As Single
With Sheets("Sheet1")
oldWidth = 0
For iPtr = 1 To oRange.Columns.Count
oldWidth = oldWidth + .Cells(1, oRange.Column + iPtr - 1).ColumnWidth
Next iPtr
oldWidth = .Cells(1, oRange.Column).ColumnWidth + .Cells(1, oRange.Column + 1).ColumnWidth
oRange.MergeCells = False
newWidth = Len(.Cells(oRange.Row, oRange.Column).Value)
oldZZWidth = .Range("ZZ1").ColumnWidth
.Range("ZZ1") = Left(.Cells(oRange.Row, oRange.Column).Value, newWidth)
.Range("ZZ1").WrapText = True
.Columns("ZZ").ColumnWidth = oldWidth
.Rows("1").EntireRow.AutoFit
newHeight = .Rows("1").RowHeight / oRange.Rows.Count
.Rows(CStr(oRange.Row) & ":" & CStr(oRange.Row + oRange.Rows.Count - 1)).RowHeight = newHeight
oRange.MergeCells = True
oRange.WrapText = True
.Range("ZZ1").ClearContents
.Range("ZZ1").ColumnWidth = oldZZWidth
End With
End Sub
在代码中,sheet1是工作表的名称,我们可以根据我们的要求调整单元格的范围。
第2步
现在将工作表保存为支持宏的模板,然后使用F5命令运行代码,成功完成我们的过程,如下图所示。
结论
在本教程中,我们用一个简单的例子来演示如何在Excel中自动拟合合并单元格的行高。