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