Kopier et område med flere områder til et spesifisert ark ved hjelp av VBA i Microsoft Excel

Anonim

I denne artikkelen vil vi lage en makro for en forening av flere områder til et spesifisert ark.

Rådata består av noen eksempeldata, som inkluderer navn og alder. Vi har to områder som inneholder rådata. Vi ønsker en forening av begge områdene til "Destinasjon" -arket.

Hvis du klikker på "Kopier post" -knappen, forenes data fra begge områdene, sammen med formatering.

Hvis du klikker på "Bare kopier verdi" -knappen, forenes også data fra begge områdene, men uten å kopiere cellens format.

Kode forklaring

For hver Smallrng In Sheets ("Main"). Range ("A9: B13, D16: E20"). Områder

Neste Smallrng

Ovenstående for hver sløyfe brukes til å sløyfe på definerte områder.

Angi destinasjonsområde = ark ("destinasjon"). Område ("A" og siste rad)

Koden ovenfor brukes til å lage et områdeobjekt for den siste cellen, der vi vil kopiere dataene.

Smallrng.Copy DestRange

Koden ovenfor brukes til å kopiere data til den angitte destinasjonen.

Følg koden nedenfor

 Alternativ Eksplisitt underkopiMultiArea () 'Deklarasjonsvariabler Dim DestRange As Range Dim Smallrng As Range Dim LastRow As Long' Sløyfe gjennom angitte områder for hver Smallrng In Sheets ("Main"). Range ("A9: B13, D16: E20"). Område 'Finne radnummeret til den siste cellen LastRow = Sheets ("Destinasjon"). Område ("A1"). SpecialCells (xlLastCell) .Rekke + 1' Velge cellen der poster må kopieres Hvis LastRow = 2 Sett deretter destrange = Sheets ("Destination"). Range ("A" & LastRow - 1) Else Set DestRange = Sheets ("Destination"). Range ("A" & LastRow) End If 'Kopierer poster til spesifisert målområde Smallrng.Copy Destrange Neste Smallrng End Sub Sub CopyMultiAreaValues ​​() 'Deklarerende variabler Dim DestRange As Range Dim Smallrng As Range Dim LastRow As Long' Sløyfe gjennom angitte områder for hver Smallrng In Sheets ("Main"). Range ("A9: B13, D16: E20" ) .Areas 'Finne radnummeret til den siste cellen LastRow = Sheets ("Destination"). Range ("A1"). SpecialCells (xlLastCell) .Row + 1 With Smallrng' Velge cellen der ledninger må kopieres Hvis LastRow = 2 Sett deretter DestRange = Sheets ("Destinasjon"). Område ("A" & LastRow - 1) .Resize (.Rows.Count, .Columns.Count) Else Set Destrange = Sheets (" Destination "). Range (" A "& LastRow) .Resize (.Rows.Count, .Columns.Count) End If End With 'Assigning the values ​​from source to destination DestRange.Value = Smallrng.Value Next Smallrng End Sub 

Hvis du likte denne bloggen, del den med vennene dine på Facebook. Du kan også følge oss på Twitter og Facebook.

Vi vil gjerne høre fra deg, gi oss beskjed om hvordan vi kan forbedre arbeidet vårt og gjøre det bedre for deg. Skriv til oss på e -post