Como transpor um intervalo em vba (com exemplo)


Você pode usar a seguinte sintaxe básica para transpor um intervalo usando VBA:

 SubTransposeRange ()

    'specify range to transpose
    MyRange = Range(" A1:B5 ")
    
    'find dimensions of range
    XUpper = UBound(MyRange, 1)
    XLower = LBound(MyRange, 1)
    YUpper = UBound(MyRange, 2)
    YLower = LBound(MyRange, 2)
    
    'transpose range
    Range(" D1 ").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _
      WorksheetFunction.Transpose(MyRange)
      
End Sub

Este exemplo específico irá transpor as células no intervalo A1:B5 e exibir o intervalo transposto começando na célula D1 .

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: como transpor um intervalo em VBA

Digamos que temos o seguinte conjunto de dados no Excel que contém informações sobre vários jogadores de basquete:

Digamos que queremos transpor o intervalo A1:B5 e exibir o intervalo transposto começando na célula D1 .

Podemos criar a seguinte macro para fazer isso:

 SubTransposeRange ()

    'specify range to transpose
    MyRange = Range(" A1:B5 ")
    
    'find dimensions of range
    XUpper = UBound(MyRange, 1)
    XLower = LBound(MyRange, 1)
    YUpper = UBound(MyRange, 2)
    YLower = LBound(MyRange, 2)
    
    'transpose range
    Range(" D1 ").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _
      WorksheetFunction.Transpose(MyRange)
      
End Sub

Quando executamos esta macro, recebemos a seguinte saída:

Observe que o intervalo transposto é exibido começando na célula D1 .

Em outras palavras, as linhas e colunas são invertidas.

Para transpor um intervalo diferente, basta substituir A1:B5 na macro por um intervalo diferente.

Nota : Você pode encontrar a documentação completa do método VBA Transpose aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:

VBA: Como contar células com texto específico
VBA: Como contar o número de linhas no intervalo
VBA: Como escrever funções COUNTIF e COUNTIFS

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *