如何根据单元格内容调整行高?

如何根据单元格内容调整行高?

我有一张只有一列、超过 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

如何在 MS Office 中添加 VBA?

你没有询问单元格内文本的对齐方式,但正如你所知,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

确保将其添加到特定的工作表中,因为它会在您输入新值时触发并重新计算

如何在 MS Office 中添加 VBA?


在此处输入图片描述

之后(Middle Align在功能区的“对齐”选项卡中)

在此处输入图片描述

相关内容