Kopiér en eller flere kolonner fra hvert ark til et ark ved hjælp af VBA i Microsoft Excel

Anonim

Nogle gange bliver det et rutinearbejde at kopiere data fra flere ark til den samme kolonne. Dette trin kan undgås ved hjælp af automatisering. Hvis du vil lave et konsolideret ark efter at have kopieret data fra en kolonne i hvert ark til et ark, skal du læse denne artikel.

I denne artikel vil vi oprette en makro til kopiering af data fra en bestemt kolonne og indsætte i et nyt ark.

Rå data til dette eksempel består af medarbejderdata i form af en Excel -projektmappe, der indeholder tre ark med afdelingens, personlige og kontaktoplysninger om medarbejdere.

For at kopiere data fra forskellige ark til et nyt ark har vi oprettet en makro “CopyColumns”. Denne makro kan køres ved at klikke på knappen "Kør makro" på "Main" -arket.

Makroen "CopyColumns" vil indsætte et nyt ark med navnet "Master" efter "Main" -arket. "Master" -ark indeholder konsoliderede data fra alle arkene.

Kode forklaring

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

Ovenstående kode bruges til at indsætte nye regneark efter "Main" -arket.

Hvis Source.Name "Master" Og Source.Name "Main" Så

Afslut Hvis

Ovenstående kode bruges til at begrænse kopiering af data fra arket "Master" og "Main".

Source.UsedRange.Copy Destination.Columns (sidste)

Ovenstående kode bruges til at kopiere data fra kildearket til destinationsarket.

For hver kilde i ThisWorkbook.Worksheets

Hvis Source.Name = "Master" Så

MsgBox "Hovedark findes allerede"

Afslut Sub

Afslut Hvis

Næste

Ovenstående kode bruges til at kontrollere, om "Master" -ark allerede findes i projektmappen. Makro stopper udførelsen, hvis "Master" -ark allerede findes i projektmappen.

Følg venligst nedenstående for koden

 Option Eksplicit underkopiKolonner () Dim Source As Worksheet Dim Destination As Worksheet Dim Last As Long Application.ScreenUpdating = False 'Kontrollerer, om "Master" -ark allerede findes i projektmappen for hver kilde i ThisWorkbook.Worksheets If Source.Name = "Master" Derefter eksisterer MsgBox "Master sheet allerede" Exit Sub End If Next 'Indsætning af nye regneark i projektmappen Set Destination = Worksheets.Add (after: = Worksheets ("Main"))' Omdøbning af regnearket Destination.Name = "Master" 'Looping gennem regnearkene i projektmappen for hver kilde i ThisWorkbook.Worksheets If Source.Name "Master" og Source.Name "Main" Herefter 'Find den sidste kolonne fra destinationsarket Last = Destination.Range ("A1"). SpecialCells ( xlCellTypeLastCell) .Column If Last = 1 Herefter 'Indsæt data i destinationsarket 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 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