Área Restrita

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


 

 

Add comment


Security code
Refresh