Como ajustar as alturas das filas dependendo do conteúdo da célula?

2

Eu tenho uma tabela de uma coluna e mais de 200 linhas. Quero ajustar as alturas dessas linhas dependendo do conteúdo delas.

Por exemplo, quando uma célula tem menos de 10 caracteres, a linha deve ter 25 pixels e, se tiver mais ou igual a 10 caracteres, a linha deve ter 50 pixels.

Estas imagens podem explicar o que quero fazer:

para

    
por zarqos.os 04.07.2017 / 13:58

2 respostas

1

Isto é baseado em sua pergunta não clara! Também postei uma opção dinâmica

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

Como eu adiciono o VBA no MS Office?

Você não perguntou sobre o alinhamento do texto dentro de uma célula, mas como você pode middle align , suponho que isso seja suficiente

Você também não parece querer fazer nada se o número de caracteres estiver entre 10 e 20

Antes

Depois

EcomoMiddleAlign

    
por 04.07.2017 / 14:31
0

Como uma segunda solução para o meu outro post , isso oferecerá uma abordagem mais dinâmica, que é onde a altura será atualização com base no número de caracteres (isso não foi testado adequadamente para limites / valores máximos superiores e, portanto, com uma string / valor longa grande, é provável que seja lançada uma exceção, então adicionei um limite codificado que parece estar em volta o limite no 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

Certifique-se de adicioná-lo à planilha específica, pois isso é acionado e recalculado à medida que você insere novos valores

Como eu adiciono o VBA no MS Office?

Antes de

Depois(comMiddleAlignnaguiaAlinhamentodafaixadeopções)

    
por 04.07.2017 / 15:03