Ibland blir det ett rutinarbete att kopiera data från flera blad för samma kolumn. Detta steg kan undvikas med hjälp av automatisering. Om du vill skapa ett konsoliderat blad efter att ha kopierat data från en kolumn i varje ark till ett ark, bör du läsa den här artikeln.
I den här artikeln kommer vi att skapa ett makro för att kopiera data från en specifik kolumn och klistra in i ett nytt ark.
Rådata för detta exempel består av medarbetardata i form av en Excel -arbetsbok som innehåller tre blad med avdelnings-, person- och kontaktuppgifter för anställda.
För att kopiera data från olika ark till ett nytt ark har vi skapat ett makro “CopyColumns”. Detta makro kan köras genom att klicka på knappen "Kör makro" på "Huvud" -arket.
Makroet "CopyColumns" kommer att infoga ett nytt blad med namnet "Master" efter "Main" -arket. "Master" -bladet kommer att innehålla konsoliderade data från alla blad.
Kodförklaring
Worksheets.Add (after: = Worksheets ("Main"))
Ovanstående kod används för att infoga nya kalkylblad efter kalkylbladet "Huvud".
If Source.Name "Master" And Source.Name "Main" Then
Avsluta om
Ovanstående kod används för att begränsa kopiering av data från "Master" och "Main" -arket.
Source.UsedRange.Copy Destination.Columns (Senast)
Ovanstående kod används för att kopiera data från källbladet till destinationsarket.
För varje källa i ThisWorkbook.Worksheets
Om Source.Name = "Master" Då
MsgBox "Huvudark finns redan"
Avsluta Sub
Avsluta om
Nästa
Ovanstående kod används för att kontrollera om "Master" -ark redan finns i arbetsboken. Makro kommer att stoppa körningen om "Master" -ark redan finns i arbetsboken.
Följ koden nedan
Alternativ Explicit Sub CopyColumns () Dim Source As Worksheet Dim Destination As Worksheet Dim Last As Long Application.ScreenUpdating = False 'Kontrollerar om "Master" -ark redan finns i arbetsboken för varje källa i ThisWorkbook.Worksheets If Source.Name = "Master" Då MsgBox "Huvudark finns redan" Avsluta Sub End If Next 'Infoga nya kalkylblad i arbetsboken Ange mål = arbetsblad.Add (efter: = kalkylblad ("huvud"))' Byt namn på kalkylbladet Destination.Name = "Master" 'Looping genom kalkylbladen i arbetsboken för varje källa i ThisWorkbook.Worksheets If Source.Name "Master" och Source.Name "Main" Sedan "Hitta den sista kolumnen från destinationsbladet Last = Destination.Range (" A1 "). SpecialCells ( xlCellTypeLastCell) .Column If Last = 1 Sedan 'Klistrar du in 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
Om du gillade den här bloggen, dela den med dina vänner på Facebook. Du kan också följa oss på Twitter och Facebook.
Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra vårt arbete och göra det bättre för dig. Skriv till oss på e -postwebbplatsen