我有一张只有一列、超过 200 行的表格。我想根据行的内容调整这些行的高度。
例如,当单元格包含少于 10 个字符时,该行必须是 25 像素,而如果单元格包含多于或等于 10 个字符,该行必须是 50 像素。
这些图片也许可以解释我想要做的事情:
到
答案1
这是基于你不清楚的问题!我还发布了动态选项
Option Explicit
Sub ChangeRowsColsInPixels()
Dim r As Range
For Each r In ActiveSheet.UsedRange
Dim length As Integer
length = Len(r.Value)
If length > 0 Then
If length < 10 Then
r.RowHeight = 25
End If
If length >= 10 Then
r.RowHeight = 50
End If
End If
Next r
End Sub
你没有询问单元格内文本的对齐方式,但正如你所知,middle align
我认为这就足够了
如果字符数在 10 到 20 之间,您似乎也不想采取任何行动
前
后
并与中间对齐
答案2
作为一个我的另一篇文章的第二个解决方案,这将提供一种更动态的方法,即高度将根据字符数进行更新(这尚未对上限/最大值进行适当测试,因此对于较大的长字符串/值,可能会引发异常,因此我添加了硬编码限制,该限制似乎接近 Excel 2010 中的限制)
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Dim defaultHeight As Integer
defaultHeight = 25
Dim maxHeight As Integer
maxHeight = 399
For Each r In ActiveSheet.UsedRange
Dim length As Integer
length = Len(r.Value)
If length > 0 Then
Dim heightToUse As Double
heightToUse = defaultHeight + length
If (heightToUse > maxHeight) Then
r.RowHeight = maxHeight
Else
r.RowHeight = heightToUse
End If
End If
Next r
End Sub
确保将其添加到特定的工作表中,因为它会在您输入新值时触发并重新计算
之后(Middle Align
在功能区的“对齐”选项卡中)