Copia una o più colonne da ogni foglio in un foglio usando VBA in Microsoft Excel

Anonim

A volte, copiare dati da più fogli per la stessa colonna diventa un lavoro di routine. Questo passaggio può essere evitato utilizzando l'automazione. Se vuoi creare un foglio consolidato dopo aver copiato i dati da una colonna di ogni foglio in un foglio, allora dovresti leggere questo articolo.

In questo articolo, creeremo una macro per copiare i dati da una colonna specifica e incollarli in un nuovo foglio.

I dati grezzi per questo esempio sono costituiti dai dati dei dipendenti sotto forma di una cartella di lavoro Excel contenente tre fogli con i dettagli di reparto, personali e di contatto dei dipendenti.

Per copiare dati da fogli diversi in un nuovo foglio, abbiamo creato una macro “CopiaColonne”. Questa macro può essere eseguita facendo clic sul pulsante "Esegui macro" nel foglio "Principale".

La macro “CopyColumns” inserirà un nuovo foglio denominato “Master” dopo il foglio “Main”. Il foglio "Master" conterrà i dati consolidati di tutti i fogli.

Spiegazione del codice

Fogli di lavoro.Add(after:=Worksheets("Principale"))

Il codice sopra viene utilizzato per inserire nuovi fogli di lavoro dopo il foglio di lavoro "Principale".

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

Finisci se

Il codice sopra viene utilizzato per limitare la copia dei dati dal foglio "Master" e "Main".

Source.UsedRange.Copy Destination.Columns(Last)

Il codice sopra viene utilizzato per copiare i dati dal foglio di origine al foglio di destinazione.

Per ogni fonte in ThisWorkbook.Worksheets

Se Source.Name = "Master" Then

MsgBox "Foglio master già esistente"

Esci Sotto

Finisci se

Prossimo

Il codice sopra viene utilizzato per verificare se il foglio "Master" esiste già nella cartella di lavoro. La macro interromperà l'esecuzione se il foglio "Master" esiste già nella cartella di lavoro.

Si prega di seguire sotto per il codice

 Opzione Explicit Sub CopyColumns() Dim Source As Worksheet Dim Destination As Worksheet Dim Last As Long Application.ScreenUpdating = False 'Verifica se il foglio "Master" esiste già nella cartella di lavoro per ogni sorgente in ThisWorkbook.Worksheets If Source.Name = "Master" Quindi MsgBox "Il foglio principale esiste già" Exit Sub End If Next 'Inserimento di nuovi fogli di lavoro nella cartella di lavoro Imposta destinazione = Worksheets.Add(after:=Worksheets("Main")) 'Rinomina il foglio di lavoro Destination.Name = "Master" 'Looping attraverso i fogli di lavoro nella cartella di lavoro Per ogni origine in questa cartella di lavoro. Fogli di lavoro If Source.Name "Master" e Source.Name "Main" Then 'Trovare l'ultima colonna dal foglio di destinazione Last = Destination.Range ("A1"). SpecialCells ( xlCellTypeLastCell).Column If Last = 1 Then 'Incolla i dati nel foglio di destinazione 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 

Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook. Inoltre, puoi seguirci su Twitter e Facebook.

Ci piacerebbe avere tue notizie, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici al sito di posta elettronica