Zkopírujte rozsah s jednou oblastí na list databáze pomocí 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 CopyOneArea () Dim sourceRange As Range Dim dimrange As Range Dim Lr As Long Lr = LastRow (Sheets ("Sheet2") + 1 Set sourceRange = Sheets ("Sheet1"). Range ("A1: c10") Set destrange = Listy ("List2"). Rozsah ("A" & Lr) sourceRange.Copy destrange Konec Sub Sub Sub CopyOneAreaValues ​​() Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow (Sheets ("Sheet2")) + 1 Nastavte sourceRange = Sheets ("Sheet1"). Range ("A1: c10") With sourceRange Set destrange = Sheets ("Sheet2"). Range ("A" & Lr). _ Resize (.Rows.Count, .Columns.Count) End With destrange.Value = sourceRange.Value End Sub Function LastRow (sh As worksheet) On Error Resume Next LastRow = sh.Cells.Find (What: = "*", _ After: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Row On Error GoTo 0 End Funkce Funkce Lastcol (pracovní list sh As) Při chybě Pokračovat Další Lastcol = sh.Cells.Find (Co: = "*", _ Poté: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByColumns, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Column On Error GoTo 0 End Function