Zkopírujte rozsah s více oblastmi na zadaný list pomocí VBA v aplikaci Microsoft Excel

Anonim

V tomto článku vytvoříme makro pro sjednocení více oblastí se zadaným listem.

Nezpracovaná data se skládají z několika ukázkových dat, která zahrnují jméno a věk. Máme dvě oblasti, které obsahují nezpracovaná data. Chceme spojení obou oblastí do listu „Cíl“.

Kliknutím na tlačítko „Kopírovat záznam“ dojde ke spojení dat z obou oblastí spolu s formátováním.

Kliknutím na tlačítko „Kopírovat pouze hodnotu“ dojde také ke spojení dat z obou oblastí, ale bez kopírování formátu buňky.

Vysvětlení kódu

Pro každý Smallrng v listech („Hlavní“). Rozsah („A9: B13, D16: E20“). Oblasti

Další Smallrng

Výše uvedená smyčka For Each se používá ke smyčce na definovaných oblastech.

Nastavit DestRange = Sheets ("Destination"). Range ("A" & LastRow)

Výše uvedený kód slouží k vytvoření objektu rozsahu poslední buňky, kam chceme data zkopírovat.

Smallrng.Copy DestRange

Výše uvedený kód se používá ke kopírování dat do zadaného cíle.

Pro kód prosím postupujte níže

 Volba Explicitní dílčí kopírováníMultiArea () 'Deklarace proměnných Dim DestRange jako rozsah Dim Smallrng jako Range Dim LastRow As Long' Looping přes určené oblasti pro každý Smallrng v listech („Main“). Range („A9: B13, D16: E20“). Areas 'Finding the row number of last cell LastRow = Sheets ("Destination"). Range ("A1"). SpecialCells (xlLastCell) .Row + 1' Selecting the cell where copies need to copy If LastRow = 2 Then Set DestRange = Listy ("Cíl"). Rozsah ("A" & LastRow - 1) Jinak Nastavit DestRange = Listy ("Cíl"). Rozsah ("A" & LastRow) Konec Pokud 'Kopírování záznamů do zadaného cílového rozsahu Smallrng.Copy DestRange Další Smallrng End Sub Sub CopyMultiAreaValues ​​() 'Deklarace proměnných Dim DestRange As Range Dim Smallrng As Range Dim LastRow As Long' Looping through specified areas For each Smallrng In Sheets ("Main"). Range ("A9: B13, D16: E20" ). Oblast 'Hledání čísla řádku poslední buňky LastRow = Listy ("Cíl"). Rozsah ("A1"). SpecialCells (xlLastCell). Řád + 1 s Smallrng' Výběr buňky, kde je šňůry je třeba zkopírovat Pokud LastRow = 2, pak nastavte DestRange = Listy („Destination“). Rozsah („A“ & LastRow - 1) .Resize (.Rows.Count, .Columns.Count) Jinak Nastavte DestRange = Sheets (" Destination "). Range (" A "& LastRow) .Resize (.Rows.Count, .Columns.Count) End If End With 'Přiřazení hodnot ze zdroje k cíli DestRange.Value = Smallrng.Value Next Smallrng End Sub 

Pokud se vám tento blog líbil, sdílejte ho se svými přáteli na Facebooku. Také nás můžete sledovat na Twitteru a Facebooku.

Rádi bychom od vás slyšeli, dejte nám vědět, jak můžeme zlepšit naši práci a zlepšit ji pro vás. Napište nám na e -mail