Como referenciar este post:
“Ordenar array, colando os resultados em uma outra coluna”. Rodrigo Terra. Publicado em: 13/09/2022. Link da postagem: https://www.cozinhadedados.com.br/vba/ordenar-array-colando-os-resultados-em-uma-outra-coluna.
Enunciado do exercício:
Desenvolva uma função, em VBA, que:
- À partir de uma lista de n valores, organize-os de forma crescente.
- Colar o resultado em uma coluna que não sobreponha os dados originais.
Lógica passo a passo:
INÍCIO
- Iniciar uma sub chamada “raizquadrada”;
- Declarar duas variáveis “x” e “y”, como Double;
- Definir que “x” deve receber um valor dado pelo usuário;
- Definir que “y” calcula a raiz quadrada de “x”, com Sqr(x);
- Apresentar o resultado da operação;
- Finalizar a sub.
FIM
Resolução em vídeo:
Código com a resolução:
'Rodrigo Terra, Cozinha de dados
'https://www.cozinhadedados.com.br
Option Explicit
Sub CompiarArray()
'Declaração das variáveis
Dim i As Integer, j As Integer
Dim nl As Integer, nc As Integer
Dim A() As Integer 'A() = array sem dimensão, depois redefinimos
'Definindo o que nl e nc irão receber
nl = Selection.Rows.Count
nc = Selection.Columns.Count
'Redefinindo o tamanho da array A(), para A(nl,nc)
ReDim A(nl, nc) As Integer
'Loop para copiar e colar o conteúdo (5 linhas abaixo)
For i = 1 To nl
For j = 1 To nc
A(i, j) = Selection.Cells(i, j)
Selection.Cells(i + 5, j) = A(i, j)
Next j
Next i
End Sub