Kopier et område med ett område til et databaseark ved hjelp av VBA i Microsoft Excel

Anonim
  • Eksempelkodene kopieres til et databaseark med navnet Sheet2.
  • Hver gang du kjører en av delene, blir cellene plassert under den siste raden med data eller etter den siste kolonnen med data i ark2.
  • For hvert eksempel er det en makro som gjør en vanlig kopi og en som bare er Kopier verdiene.
  • Eksempler -delene bruker funksjonene nedenfor (makroene fungerer ikke uten funksjonene).
Sub CopyOneArea () Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow (Sheets ("Sheet2")) + 1 Set sourceRange = Sheets ("Sheet1"). Range ("A1: c10") Set destrange = Sheets ("Sheet2"). Range ("A" & Lr) sourceRange.Copy destrange End Sub Sub CopyOneAreaValues ​​() Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow (Sheets ("Sheet2")) + 1 Angi sourceRange = Sheets ("Sheet1"). Range ("A1: c10") With sourceRange Set destrange = Sheets ("Sheet2"). Range ("A" & Lr). _ Endre størrelse (.Rows.Count, .Columns.Count) Slutt med destrange.Value = sourceRange.Value Slutt Sub Funksjon LastRow (sh Som regneark) På feil Gjenoppta Neste LastRow = sh.Cells.Find (Hva: = "*", _ Etter: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Rad på feil GoTo 0 End Funksjon Funksjon Lastcol (sh Som regneark) Ved feil Gjenoppta Neste Lastcol = sh.Cells.Find (Hva: = "*", _ Etter: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByColumns, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Column On Error GoTo 0 End Function