Excel 文本换行选项不适用于合并单元格 - 5 个解决方案
该数据集展示引言和相应的作者。每个引文覆盖 3 个单元格,并且文本未完全显示。合并这些单元格后,将文本换行。
问题识别
- 选择报价(例如B5:D5)。
- 点击合并并居中。
- 在对齐中选择文本换行。
或者,您可以使用设置单元格格式选项(按CTRL + 1打开设置单元格格式对话框) 。转到对齐并选中文本换行和合并单元格。
这是输出。
注意:您无法合并包含数据集的所有单元格。您必须选择要合并的相邻单元格。
如果您在下面的单元格中重复该过程,您将得到以下输出。
- 自动调整行高:点击格式中的自动调整行高。
您将得到以下输出(自动换行选项对合并的单元格不起作用:第 5、8 和 9 行。
解决方案1 – 手动调整行高列宽
- 选择任意单元格并转到行号。向下拖动光标。
- 您还可以通过在格式中选择行高来输入行高。
- 输入行高:32。
文本换行和合并单元格选项都运行良好。
如果您合并了列中的单元格,请调整列宽。
解决方案 2 – 取消合并单元格然后换行
- 在合并并居中中选择取消合并单元格。
这是输出。
- 选择单元格区域并单击文本换行。
- 选择自动调整行高。
这是输出。
阅读更多:Excel 自动调整行高以换行
解决方案 3 – 在合并单元格之前更改对齐方式
- 选择未合并的单元格,然后选择设置单元格格式。
- 转到对齐,然后在水平中选择在选择范围内居中。
- 选中文本换行。
- 自动调整单元格。
- 这是输出。
解决方案 4 – 插入换行符
- 将光标放在连字符之前,然后按 ALT + ENTER 插入换行符。
这是输出。
- 自动调整单元格。
解决方案 5 – 使用 VBA 代码
- 单击开发人员> Visual Basic。
- 转到插入> 模块。
输入以下代码。
Sub MergeWrap_VBA()
Dim rn As Long, Mrow As Long, ERow As Long, MCol As Long
Dim cn As Long, n As Long, rh As Single, mr As Long
Application.DisplayAlerts = False
Sheets("Using VBA").Copy After:=Sheets(Sheets.Count)
On Error Resume Next
ActiveSheet.Name = "Outupt Using VBA"
Cells().WrapText = True
Rows.AutoFit
MCol = Cells(1, 1).End(xlToRight).Column
Mrow = Cells(Rows.Count, 1).End(xlUp).Row
For rn = Mrow To 2 Step -1
If Cells(rn, 1).Value = "" Then
If ERow = 0 Then ERow = rn
ElseIf ERow > 0 Then
rh = Rows(r).RowHeight
n = ERow - rn + 1
If n > 0 Then Rows(rn & ":" & ERow).RowHeight = h / n
For cn = 1 To MCol
For mr = ERow To rn Step -1
If Cells(mr, cn).Value = "" Then
Range(Cells(mr, cn), Cells(mr - 1, cn)).MergeCells = True
End If
Next
Next
ERow = 0
End If
Next
Application.DisplayAlerts = True
With Worksheets("Outupt Using VBA").Columns("B")
.ColumnWidth = .ColumnWidth * 2
End With
End Sub
变量已声明。该代码将输入的副本生成到新工作表中。 WrapText 被指定为 True 以换行文本。 Range.End 属性用于返回最大列数和行数。 For 循环返回输出。 Column.Width 属性会增加 B 列的宽度。
使用代码时需要更改的内容:
- 输入活动工作表名称(“使用 VBA”)。
- 更改输出表:“使用 VBA 输出”。
- 定义用于换行文本的列。
运行代码(按F5或Fn + F5),您将看到以下输出。