AutoFit不适用于包装文本

时间:2012-09-22 06:13:57

标签: excel vba excel-vba

我在单元格中有一个Chr(10)

cell.WrapText = False
cell.EntireRow.AutoFit ' AutoFit works
' ------------ but:
cell.WrapText = True
cell.EntireRow.AutoFit ' AutoFit works only if the cell has less then five lines.

如果我添加一些字符(多一行) - AutoFit不起作用。文字在第一行和最后一行被剪切 着名的excel 2010

2 个答案:

答案 0 :(得分:4)

这取决于数据的大小以及列的宽度。原因是行可以扩展的最大高度为409.5 (546 pixels)。如果手动增加行的高度,您会注意到在特定高度之后,您将无法增加行的高度。检查那个高度是多少:)同样是宽度的概念。这适用于行和列。如果是列,则最大宽度为254.86 (1789 pixels)

我将此代码用于演示目的。

Option Explicit

Sub Sample()
    ActiveCell.WrapText = True
    ActiveCell.EntireRow.AutoFit
    MsgBox ActiveCell.RowHeight
End Sub

见此截图

此作品

enter image description here

这不是

该行已达到最大值。它不能超越它。

enter image description here

处理此问题的最佳方法是增加色谱柱的宽度。

<强>后续

它之所以不起作用的原因是因为你在该行中有多个包含数据的列,而你试图将WrapText设置为1个单元格,因此它无法正常工作。如果您有多列数据,则必须使用cell.EntireRow.WrapText = True而不是ActiveCell.WrapText = True

答案 1 :(得分:0)

一个相关的解决方案,以防有人帮助。我的数据具有“自动换行”功能,并且单元格中的换行符来自使用“ Char(10)”的公式复制数据。我需要换行。

例如,单元格中的数据应显示如下:
城市:纽约(1950)
国家:美国

但是它显示了这样的内容:
城市:新
约克(1950)
国家:
美国

选择该列并单击以进行自动调整会带来一些改进:
城市:纽约
(1950)
国家:美国

第二次重复手动自动调整将文本设置为所需的格式。
如果一行中有更多用空格分隔的文本,则将进行更多的自动调整尝试,最终将完全纠正格式。

因此,在我的VBA代码中,我复制了此代码,并重复了自动调整代码,重复了我知道可以解决问题的次数:

this.props.handleDelete

(如果没有“ DoEvents”,它可能会起作用。我没有尝试过)