我想知道是否有一种方法可以防止单元格的文本重叠到相邻的单元格中,而无需调整单元格本身的大小,或者将单元格内容设置为换行。
6 回答
早上好。有一种方法可以干净地做到这一点:
- 选择范围
- 右键单击>“设置单元格格式”>“对齐”选项卡
- 在文本对齐区域中,从“水平”下拉菜单中选择“填充”
在 VBA 中,看起来像:
Sub AwayWithYouConfusingOverlap()
Range("A1").HorizontalAlignment = xlFill
End Sub
除了您提到的两种方法(重新调整单元格大小并将其设置为换行)之外,唯一的方法是在相邻单元格中放置文本。[编辑:我忘记了另一种方法,正如 Siddharth Rout 指出的那样,如果将单元格格式化为“缩小以适应”(在对齐>文本控件下),字体大小将自动缩小,以使内容适合单元格宽度。 ] 如果您只想在单元格的边缘截断长文本,只有当文本将流入的单元格具有自己的内容时,Excel 才会执行此操作。
自动执行此操作的最快方法是:
- 遍历所有包含内容的单元格。
- 如果它们还没有内容,则在水平相邻的单元格中放置一个空格。
请注意,您应该对具有溢出内容的单元格的左侧和右侧的两个单元格执行此操作,或者检查文本是左对齐还是右对齐,以帮助确定需要填充两个水平相邻单元格中的哪一个。
如果您只想对本来会溢出的单元格执行此操作,那么您必须做一些更复杂的事情。你不得不:
- 遍历所有包含内容的单元格。
- 检查与当前单元格相邻的单元格是否为空白。如果没有,您可以跳过此单元格并继续下一个单元格。
- 将当前单元格的内容复制到空白列中的单元格(最好在新的临时工作表上)。
- 告诉您的临时列自动调整大小(以找出所需的单元格宽度)。
- 如果临时列的自动大小宽度大于源列的宽度,则单元格内容将溢出 - 因此您需要在相邻单元格中放置一个空格。
我最近发现了一种干净的方法来防止相邻单元格中的重叠文本出现:
- 选择范围
- 右键单击>格式化单元格>对齐>复选框换行
结果可能看起来很丑,因为不同的行可能以不同的高度显示。但是,仍然可以通过强制所有行具有相同的高度来修复所有问题:
- 选择范围
- 右键单击最左边的列(包含行号)> 行高> 输入所需的值。
而已 ...
我希望我的法语不会掩盖我的英语,至少不会太多。
此解决方案的优点是还可以用于打印(如果您想防止溢出到其他空白页),因为您不需要额外的列。
可以在 VBA 中执行相同的过程:
With Range("A1:H100")
.WrapText = True ' enable wrapping, will autoformat height
.rows.RowHeight = 12.75 ' set back to default height, overflow is removed
End With
我只在重叠单元格旁边的单元格中放置了一个空格。它不再重叠。我在整个电子表格中复制并粘贴该单元格
我只需在要停止重叠的列的右侧插入一列,然后以小磅值输入一个字符。然后将其一直复制到电子表格中,并将列的宽度缩小到 0.5,使其几乎不引人注意。这样您就不会影响公式,并使您的电子表格更易于阅读。