Copie um intervalo no local do Activecell para uma planilha de banco de dados usando VBA no Microsoft Excel

Anonim
  • Os códigos de exemplo serão copiados para uma planilha de banco de dados com o nome Plan2.
  • Cada vez que você executa uma das subs, as células serão colocadas abaixo da última linha com dados ou após a última coluna com dados na planilha2.
  • Para cada exemplo, há uma macro que faz uma cópia normal e outra que é apenas Copiar os Valores.
  • Os subs de exemplo usam as funções abaixo (as macros não funcionam sem as funções).
Sub CopyToActiveCell () Dim sourceRange As Range Dim destrange As Range If Selection.Cells.Count> 1 Then Exit Sub Set sourceRange = Sheets ("Sheet1"). Range ("A1: C10") Set destrange = ActiveCell sourceRange.Copy destrange End Sub Sub CopyToActiveCellValues ​​() Dim sourceRange As Range Dim destrange As Range If Selection.Cells.Count> 1 Then Exit Sub Set sourceRange = Sheets ("Sheet1"). Range ("A1: C10") Com sourceRange Defina destrange = ActiveCell.Resize _ (.Rows.Count, .Columns.Count) End With destrange.Value = sourceRange.Value End Sub Função LastRow (sh As Worksheet) Em erro Resume Next LastRow = sh.Cells.Find (What: = "*", _ Depois de: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row On Error GoTo 0 End Function Função Lastcol (sh As Worksheet) On Error Resume Next Lastcol = sh.Cells.Find (What: = "*", _ After: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas , _ SearchOrder: = xlByColumns, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Column On Error GoTo 0 End Function