Kopeerige ühe piirkonnaga 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 CopyOneArea () Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow (Sheets ("Sheet2")) + 1 Set sourceRange = Sheets ("Sheet1"). Vahemik ("A1: c10") Set destrange = Arvutustabelid ("leht 2"). Vahemik ("A" ja Lr) Määra sourceRange = Sheets ("Sheet1"). Vahemik ("A1: c10") AllikaRange Määra destrange = Sheets ("Sheet2"). Vahemik ("A" ja Lr). _ Suuruse muutmine (.Rows.Count, .Columns.Count) Lõpeb destrange.Value = sourceRange.Value Lõpp Alamfunktsioon LastRow (sh töölehena) On Error Resume Next LastRow = sh.Cells.Find (What: = "*", _ Pärast: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Funktsioon 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 vea korral GoTo 0 End Function