Kopier en eller flere kolonner fra hvert ark til ett ark ved hjelp av VBA i Microsoft Excel

Anonim

Noen ganger blir det et rutinearbeid å kopiere data fra flere ark for den samme kolonnen. Dette trinnet kan unngås ved hjelp av automatisering. Hvis du vil lage et konsolidert ark etter å ha kopiert data fra en kolonne i hvert ark til ett ark, bør du lese denne artikkelen.

I denne artikkelen vil vi lage en makro for å kopiere data fra en bestemt kolonne og lime inn i et nytt ark.

Rådata for dette eksemplet består av ansattedata i form av en Excel -arbeidsbok som inneholder tre ark med avdelings-, personlige og kontaktinformasjon til ansatte.

For å kopiere data fra forskjellige ark til et nytt ark, har vi laget en makro “CopyColumns”. Denne makroen kan kjøres ved å klikke på "Kjør makro" -knappen på "Hoved" -arket.

Makroen "CopyColumns" vil sette inn et nytt ark med navnet "Master" etter "Main" -arket. "Master" -arket vil inneholde konsoliderte data fra alle arkene.

Kode forklaring

Worksheets.Add (after: = Worksheets ("Main"))

Koden ovenfor brukes til å sette inn nye regneark etter "Hoved" -arket.

If Source.Name "Master" And Source.Name "Main" Then

Slutt om

Koden ovenfor brukes til å begrense kopiering av data fra "Master" og "Main" -arket.

Source.UsedRange.Copy Destination.Columns (Siste)

Koden ovenfor brukes til å kopiere data fra kildebladet til destinasjonsarket.

For hver kilde i ThisWorkbook.Worksheets

Hvis Source.Name = "Master" Da

MsgBox "Hovedark eksisterer allerede"

Avslutt Sub

Slutt om

Neste

Koden ovenfor brukes til å kontrollere om "Master" -arket allerede finnes i arbeidsboken. Makro stopper utførelsen hvis "Master" -arket allerede finnes i arbeidsboken.

Følg koden nedenfor

 Option Explicit Sub CopyColumns () Dim Source As Worksheet Dim Destination As Worksheet Dim Last As Long Application.ScreenUpdating = False 'Sjekker om "Master" -ark allerede finnes i arbeidsboken for hver kilde i ThisWorkbook.Worksheets If Source.Name = "Master" Da MsgBox "Hovedark eksisterer allerede" Avslutt underenden Hvis neste 'Sette inn nye regneark i arbeidsboken Angi destinasjon = regneark.Add (etter: = regneark ("hoved"))' Gi nytt navn til regnearket Destination.Name = "Master" 'Looping gjennom regnearkene i arbeidsboken for hver kilde i ThisWorkbook.Worksheets If Source.Name "Master" og Source.Name "Main" Deretter 'Finne den siste kolonnen fra destinasjonsarket Last = Destination.Range ("A1"). SpecialCells ( xlCellTypeLastCell) .Column If Last = 1 Deretter 'Limer du inn dataene i destinasjonsarket Source.UsedRange.Copy Destination.Columns (Last) Else Source.UsedRange.Copy Destination.Columns (Last + 1) End If End If Next Columns.AutoFit Application.ScreenUpdating = True 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