É possível utilizar a seguinte sintaxe básica para transpor um intervalo utilizando o VBA:

 Sub TransposeRange() 'especificar o intervalo a transpor MyRange = Range(" A1:B5 ") 'encontrar as dimensões do intervalo XUpper = UBound(MyRange, 1) XLower = LBound(MyRange, 1) YUpper = UBound(MyRange, 2) YLower = LBound(MyRange, 2) 'transpor o intervalo 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 apresentar o intervalo transposto que começa na célula D1 .

O exemplo seguinte mostra como utilizar esta sintaxe na prática.

Exemplo: Como transpor um intervalo no VBA

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

Suponha que gostaríamos de transpor o intervalo A1:B5 e produzir o intervalo transposto começando na célula D1 .

Para o efeito, podemos criar a seguinte macro:

 Sub TransposeRange() 'especificar o intervalo a transpor MyRange = Range(" A1:B5 ") 'encontrar as dimensões do intervalo XUpper = UBound(MyRange, 1) XLower = LBound(MyRange, 1) YUpper = UBound(MyRange, 2) YLower = LBound(MyRange, 2) 'transpor o intervalo Range(" D1 ").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _ WorksheetFunction.Transpose(MyRange) End Sub 

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

Repare que o intervalo transposto é apresentado a partir da célula D1 .

Ou seja, as linhas e as colunas são trocadas.

Para transpor uma gama diferente, basta alterar A1:B5 na macro para um intervalo diferente.

Nota : Pode encontrar a documentação completa para o VBA Transpor método aqui.