Kopeerige Activecelli koha vahemik andmebaasi lehele, kasutades Microsoft Excelis VBA -d

Anonim
  • Näidekoodid kopeeritakse andmebaasilehele nimega Sheet2.
  • Iga kord, kui käivitate mõne alamosa, paigutatakse lahtrid viimase reaga andmete alla või pärast viimast veergu, kus on andmed lehel2.
  • Iga näite puhul on makro, mis teeb tavalise koopia, ja üks, mis on ainult väärtuste kopeerimine.
  • Näitealamid kasutavad alltoodud funktsioone (makrod ei tööta ilma funktsioonideta).
Sub CopyToActiveCell () Dim sourceRange As Range Dim destrange As Range if Selection.Cells.Count> 1 Seejärel väljuge alamhulgast sourceRange = Sheets ("Sheet1"). Vahemik ("A1: C10") Set destrange = ActiveCell sourceRange.Copy destrange End Sub Sub CopyToActiveCellValues ​​() Dim sourceRange As Range Dim dimrange as Range if Selection.Cells.Count> 1 Seejärel väljuge alamhulgast sourceRange = Sheets ("Sheet1"). Vahemik ("A1: C10") SourceRange Set destrange = ActiveCell.Resize _ (.Rows.Count, .Columns.Count) Lõpeb destrange.Value = sourceRange.Value Lõpu alamfunktsioon LastRow (sh töölehena) Viga Tõrke korral Jätka järgmist LastRow = sh.Cells.Find (Mis: = "*", _ Pärast: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Funktsioon Lastcol (sh töölehena) Vea korral Jätka järgmisel Lastcol = sh.Cells.Find (Mis: = "*", _ Pärast: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas , _ SearchOrder: = xlByColumns, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Veerg On Error GoTo 0 End Function