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