Excel 自动拟合合并单元格的行高

Excel 自动拟合合并单元格的行高

我们可以看到,如果我们试图将大量的数据放入一个单元格,那么现在如果我们移动到另一个单元格,数据就会被显示出来;解决这个问题的唯一方法是增加单元格的行高。对于只有一个单元格,我们可以通过使用 “Alt + Enter “命令来调整行高,但当我们试图合并不同高度的单元格时,我们会面临同样的问题;我们无法使用该命令。请阅读本教程,了解如何解决这个问题,即如何在Excel中自动调整合并单元格的行高。

自动调整Excel中合并单元格的行高

这里我们先插入一个VBA模块,然后运行代码并选择一个单元格区域来完成任务。让我们看看一个简单的过程,了解如何在Excel中自动适应合并的单元格的行高。

第1步

考虑以下图片,一个Excel工作表有两个不同高度的单元格被合并——。

如何在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是工作表的名称,我们可以根据我们的要求调整单元格的范围。

如何在Excel中自动拟合合并单元格的行高?

第2步

现在将工作表保存为支持宏的模板,然后使用F5命令运行代码,成功完成我们的过程,如下图所示。

如何在Excel中自动拟合合并单元格的行高?

结论

在本教程中,我们用一个简单的例子来演示如何在Excel中自动拟合合并单元格的行高。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程