Copiați o coloană sau coloane din fiecare coală într-o coală folosind VBA în Microsoft Excel

Anonim

Uneori, devine o lucrare de rutină să copiați date de pe mai multe foi pentru aceeași coloană. Acest pas poate fi evitat folosind automatizarea. Dacă doriți să creați o foaie consolidată după copierea datelor dintr-o coloană din fiecare foaie într-o singură foaie, atunci ar trebui să citiți acest articol.

În acest articol, vom crea o macrocomandă pentru a copia datele dintr-o anumită coloană și a le lipi într-o foaie nouă.

Datele brute pentru acest exemplu constau în date despre angajați sub forma unui registru de lucru Excel care conține trei foi cu detaliile departamentale, personale și de contact ale angajaților.

Pentru a copia date din diferite foi într-o nouă foaie, am creat o macro „CopyColumns”. Această macrocomandă poate fi rulată făcând clic pe butonul „Execută macrocomanda” de pe foaia „Principal”.

Macro-ul „CopyColumns” va insera o foaie nouă numită „Master” după foaia „Main”. Foaia „Master” va conține date consolidate din toate foile.

Explicarea codului

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

Codul de mai sus este folosit pentru a insera noi foi de lucru după foaia de lucru „Principal”.

Dacă Source.Name „Master” și Source.Name „Main” Atunci

End If

Codul de mai sus este utilizat pentru a restricționa copierea datelor din foile „Master” și „Main”.

Source.UsedRange.Copy Destination.Columns (Ultima)

Codul de mai sus este utilizat pentru a copia date din foaia sursă în foaia de destinație.

Pentru fiecare sursă din ThisWorkbook.Worksheets

Dacă Source.Name = "Master" Atunci

MsgBox „Foaia principală există deja”

Ieșiți din Sub

End If

Următorul

Codul de mai sus este utilizat pentru a verifica dacă foaia „Master” există deja în registrul de lucru. Macro va opri executarea dacă foaia „Master” există deja în registrul de lucru.

Vă rugăm să urmați codul de mai jos

 Opțiune Explicit Sub CopyColumns () Dim Sursă ca foaie de lucru Dim Destinație ca foaie de lucru Dim Last as Long Application.ScreenUpdating = False 'Verificarea dacă foaia "Master" există deja în registrul de lucru pentru fiecare sursă din acest manual de lucru. Foi de lucru dacă Source.Name = "Master" Apoi MsgBox „Foaia principală există deja” Ieșiți din Sub End Dacă Următorul 'Inserarea de foi de lucru noi în registrul de lucru Setați Destinația = Fișe de lucru.Adăugați (după: = Fișe de lucru („Principal”))' Redenumirea foii de lucru Destinație.Nume = „Maestru” 'Buclă prin foile de lucru din registrul de lucru pentru fiecare sursă din acest manual de lucru. Fișe de lucru dacă Source.Name "Master" și Source.Name "Main" Apoi 'Găsirea ultimei coloane din foaia de destinație Last = Destination.Range ("A1"). SpecialCells ( xlCellTypeLastCell) .Column If Last = 1 Then 'Pasting the data in the destination sheet 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 

Dacă ți-a plăcut acest blog, distribuie-l prietenilor tăi de pe Facebook. De asemenea, ne puteți urmări pe Twitter și Facebook.

Ne-ar plăcea să aflăm de la dvs., să ne anunțați cum putem îmbunătăți munca noastră și o putem îmbunătăți. Scrieți-ne pe site-ul de e-mail