EXCEL VBA如何根据单元格里的内容长度调整单元格行高?

我设置自动换行和合并单元格,然后行高就不能自动适应了,现在我想用VBA实现根据单元格内字符串的长度和字体大小来调整行高,这个该如何实现?
或者告诉我用什么语句能探测具体某一个单元格内的字符串长度,还有,用什么语句能判断出这个选中的单元格是由几个小格子合并得到的,谢谢了!!!

1、判断一个单元格内的字符串长度用Len函数,用法如下:

  s = Len(Range("A1").Text)

这里的s就表示字符串有多少个字符组成的。


2、判断选中的单元格是由几个小格子组成的可以这样:

比如:

Sub yy()
    [h6:k8].Merge   '将h6:k8区域合并单元格
    [h6].Select     '选中H6:k8这个合并单元格
    MsgBox Selection.Count   '通过Selection.Count这个命令就可以得到选中的这个区域的单元格数目
End Sub

3、让单元格自动调整行高,用AutoFit,自动适应方法,用法如下:    

Sub xx()
    Range("A1:F6").Rows.AutoFit
End Sub

这样就可以自动调整行高了!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-08
如何获取单元格内容的行数,再乘以某个值,

根据行数设定行高
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim a, b
Sheet1.UsedRange.Offset(1, 1).ClearContents
[a1].CurrentRegion.EntireRow.AutoFit
For i = 2 To [a65536].End(3).Row
Cells(i, 1).WrapText = True
a = Cells(i, 1).RowHeight
Cells(i, 1).WrapText = False
b = Cells(i, 1).RowHeight
Cells(i, 1).WrapText = True
Rows().RowHeight = Application.Ceiling(a / b, 1) * 10
Next
Application.ScreenUpdating = True
End Sub