Zkopírujte řádek nebo řádky na list databáze pomocí jazyka VBA v aplikaci Microsoft Excel

Anonim
  • Ukázkové kódy se zkopírují do databázového listu s názvem Sheet2.
  • Pokaždé, když spustíte jednu z podřízených položek, budou buňky umístěny pod poslední řádek s daty nebo za poslední sloupec s daty v listu2.
  • Pro každý příklad existuje makro, které dělá normální kopii, a jedno, které je pouze Kopírovat hodnoty.
  • Subpřiklady používají níže uvedené funkce (makra bez těchto funkcí nebudou fungovat).
Sub CopyRow () Dim sourceRange As Range Dim dimrange As Range Dim Lr As Long Lr = LastRow (Sheets ("Sheet2") + 1 Set sourceRange = Sheets ("Sheet1"). Rows ("1: 1") Set destrange = Listy ("List2"). Řádky (Lr) sourceRange.Copy destrange Konec Sub Sub CopyRowValues ​​() Dim sourceRange As Range Dim distrange As Range Dim Lr As Long Lr = LastRow (Sheets ("Sheet2")) + 1 Set sourceRange = Sheets („List1“). Řádky („1: 1“) Nastavit destrange = Listy („List2“). Řádky (Lr). _ Resize (sourceRange.Rows.Count) destrange.Value = sourceRange.Value End Sub Function LastRow (sh As worksheet) On Error Resume Next LastRow = sh.Cells.Find (What: = "*", _ After: = sh. Rozsah ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Row On Error GoTo 0 End Function Funkce Lastcol (sh As Pracovní list) Při chybě Pokračovat Další Lastcol = sh.Cells.Find (Co: = "*", _ After: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByColumns, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Column On Error GoTo 0 End Function