通过vba计算被包装的单元格中的行数

如何通过vba代码来计算包装单元格中的行数?

With Cells(1, 1) .WrapText = False height1 = .height .WrapText = True height2 = .height End With MsgBox height2 / height1 & " Lines" 

这段代码将不起作用,因为我已经将行高设置为固定行(只有一行是可见的)。

同样在我的文本中,由于数据是通过VBA代码input的,所以没有换行符。

提前致谢。

一种方法是从未调整的单元格长度中删除换行符来减去单元格的长度

换行符可以使用工作表函数Substitutereplace为长度为0的string

 Sub test() Dim c As Range Set c = ActiveCell MsgBox Len(c.Value) - Len(Application.WorksheetFunction.Substitute(c.Value, Chr(10), vbNullString)) & " Linebreak(s)" End Sub 

[更新; Not a linebreak! ]

正如Sid指出的那样, 在excel中从一个被包装的单元格中获取前两行文本,如果使用字体大小(可以改变),这是非常棘手的。

我认为最简单的方法是将单元格内容复制到别处(空白行),然后根据该单元格自动调整该行以获取高度。