Copiați un interval cu mai multe zone într-o foaie specificată utilizând VBA în Microsoft Excel

Anonim

În acest articol, vom crea o macro pentru o unire a mai multor zone la o foaie specificată.

Datele brute constau în câteva exemple de date, care includ numele și vârsta. Avem două zone care conțin date brute. Vrem o unire a ambelor zone la foaia „Destinație”.

Dacă faceți clic pe butonul „Copiere înregistrare” se va realiza unirea datelor din ambele zone, împreună cu formatarea.

Dacă faceți clic pe butonul „Copiați numai valoarea”, veți face și unirea datelor din ambele zone, dar fără a copia formatul celulei.

Explicarea codului

Pentru fiecare Smallrng In Foi ("Principal"). Gama ("A9: B13, D16: E20").

Următorul Smallrng

Cele de mai sus pentru fiecare buclă sunt utilizate pentru a bucla pe zone definite.

Setați DestRange = Sheets („Destinație”). Range („A” & LastRow)

Codul de mai sus este utilizat pentru a crea un obiect de gamă al ultimei celule, unde dorim să copiem datele.

Smallrng.Copy DestRange

Codul de mai sus este utilizat pentru a copia date la destinația specificată.

Vă rugăm să urmați codul de mai jos

 Opțiune Explicit Sub CopyMultiArea () 'Declararea variabilelor Dim DestRange As Range Dim Smallrng As Range Dim LastRow As Long' Buclare prin zonele specificate pentru fiecare Smallrng din foi („Main”). Range („A9: B13, D16: E20”). Zonele 'Găsirea numărului rândului ultimei celule LastRow = Foi ("Destinație"). Gama ("A1"). SpecialCells (xlLastCell). Rând + 1' Selectarea celulei în care înregistrările trebuie să fie copiate Dacă LastRow = 2 Apoi setați DestRange = Foi („Destinație”). Interval („A” & LastRow - 1) Altfel Set DestRange = Foi („Destinație”). Interval („A” & LastRow) End If 'Copierea înregistrărilor în intervalul de destinație specificat Smallrng.Copy DestRange Următorul Smallrng End Sub Sub CopyMultiAreaValues ​​() 'Declararea variabilelor Dim DestRange as Range Dim Smallrng As Range Dim LastRow As Long' Buclare prin zonele specificate pentru fiecare Smallrng din foi („Main”). Range („A9: B13, D16: E20” ) .Areas 'Găsirea numărului rândului ultimei celule LastRow = Foi ("Destinație"). Range ("A1"). SpecialCells (xlLastCell). Rând + 1 cu Smallrng' Selectarea celulei unde re cablurile trebuie să fie copiate Dacă LastRow = 2 Apoi setați DestRange = Sheets („Destinație”). Range („A” & LastRow - 1) .Resize (.Rows.Count, .Columns.Count) Altfel Set DestRange = Sheets („ Destinație "). Gama (" A "& LastRow) .Resize (.Rows.Count, .Columns.Count) Termină dacă se termină cu 'Atribuirea valorilor de la sursă la destinație DestRange.Value = Smallrng.Value Next Smallrng End Sub 

Dacă ți-a plăcut acest blog, distribuie-l prietenilor tăi de pe Facebook. De asemenea, ne puteți urmări pe Twitter și Facebook.

Ne-ar plăcea să aflăm de la dvs., să ne anunțați cum putem îmbunătăți munca noastră și o putem îmbunătăți. Scrieți-ne pe site-ul de e-mail