Kopier et område med flere områder til et bestemt ark ved hjælp af VBA i Microsoft Excel

Anonim

I denne artikel vil vi oprette en makro for en forening af flere områder til et specifikt ark.

Rådata består af nogle eksempeldata, som omfatter navn og alder. Vi har to områder, der indeholder rådata. Vi ønsker en forening af begge områder til arket "Destination".

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

Hvis du klikker på knappen "Kopier kun værdi", forenes også data fra begge områder, men uden at kopiere cellens format.

Kode forklaring

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

Næste Smallrng

Ovenstående For hver sløjfe bruges til at sløjfe på definerede områder.

Indstil DestRange = Sheets ("Destination"). Område ("A" og LastRow)

Ovenstående kode bruges til at oprette et områdeobjekt for den sidste celle, hvor vi vil kopiere dataene.

Smallrng.Copy DestRange

Ovenstående kode bruges til at kopiere data til den angivne destination.

Følg venligst nedenstående for koden

 Valgmulighed Eksplicit underkopieringMultiArea () 'Deklarationsvariabler Dim DestRange As Range Dim Smallrng As Range Dim LastRow As Long' Sløjfer gennem angivne områder for hver Smallrng In Sheets ("Main"). Range ("A9: B13, D16: E20"). Områder 'Find række af sidste celle LastRow = Sheets ("Destination"). Område ("A1"). SpecialCeller (xlLastCell) .Række + 1' Valg af cellen, hvor poster skal kopieres Hvis LastRow = 2 Indstil derefter Destrange = Sheets ("Destination"). Range ("A" & LastRow - 1) Else Set DestRange = Sheets ("Destination"). Range ("A" & LastRow) End If 'Kopiering af poster til specificeret destinationsområde Smallrng.Copy Destrange Næste Smallrng End Sub Sub CopyMultiAreaValues ​​() 'Deklarerende variabler Dim DestRange As Range Dim Smallrng As Range Dim LastRow As Long' Sløjfer gennem bestemte områder for hver Smallrng In Sheets ("Main"). Range ("A9: B13, D16: E20" ) .Areas 'Find række af sidste celle LastRow = Sheets ("Destination"). Range ("A1"). SpecialCells (xlLastCell) .Række + 1 med Smallrng' Valg af celle, hvor der ledninger skal kopieres Hvis LastRow = 2 Indstil derefter DestRange = Sheets ("Destination"). Range ("A" & LastRow - 1) .Resize (.Rows.Count, .Columns.Count) Else Set Destrange = Sheets (" Destination "). Område (" A "og 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 kunne lide denne blog, kan du dele den med dine venner på Facebook. Du kan også følge os på Twitter og Facebook.

Vi vil meget gerne høre fra dig, lad os vide, hvordan vi kan forbedre vores arbejde og gøre det bedre for dig. Skriv til os på e -mail -stedet