Mover dados da planilha usando matriz (array)
Esse exemplo exibe um inputbox perguntando a primeira célula de origem dos dados e a primeira célula de destino dos dados na planilha do excel. A macro carrega os dados num vetor, apaga da planilha e descarrega na nova posição dentro da planilha.
Segue o código em vba:
Sub transfere()
Dim matriz
Dim l, c, linha, coluna As Long
Dim origem, destino As String
origem = InputBox("Informe a célula de origem...", "Etapa 1", "A1")
destino = InputBox("Informe a célula de destino...", "Etapa 1", "A1")
Range(origem).Select
l = 0
c = 0
Do While Not ActiveCell.Offset(l, 0).Value = ""
l = l + 1
Loop
Do While Not ActiveCell.Offset(0, c).Value = ""
c = c + 1
Loop
ReDim matriz(1 To l, 1 To c)
For linha = 1 To l
For coluna = 1 To c
matriz(linha, coluna) = ActiveCell.Offset(linha - 1, coluna - 1)
ActiveCell.Offset(linha - 1, coluna - 1).Value = ""
Next
Next
Range(destino).Select
For linha = 1 To l
For coluna = 1 To c
ActiveCell.Offset(linha - 1, coluna - 1).Value = matriz(linha, coluna)
Next
Next
End Sub
