Kopeerige veerg või veerud 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).

Pidage meeles, et Excelis on ainult 256 veergu

Alamkoopia CopyColumn () Dim sourceRange As Range Dim destrange As Range Dim Lc As Integer Lc = Lastcol (Sheets ("Sheet2")) + 1 Set sourceRange = Sheets ("Sheet1"). Veerud ("A: A") Set destrange = Arvutustabelid ("leht 2"). Veerud (Lc) sourceRange.Copy destrange End Sub Sub CopyColumnValues ​​() Dim sourceRange As Range Dim destrange As Range Dim Lc As Integer Lc = Lastcol (Sheets ("Sheet2")) + 1 Set sourceRange = Sheets ("Sheet1"). Veerud ("A: A") Määra destrange = Sheets ("Sheet2"). Veerud (Lc). _ Suuruse muutmine (, sourceRange.Columns.Count) destrange.Value = sourceRange.Value Lõpp Alamfunktsioon LastRow (sh töölehena) Vea 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). 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