A volte, diventa un lavoro di routine copiare i dati da più fogli per la stessa colonna. 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 i dati dei dipendenti sotto forma di una cartella di lavoro Excel contenente tre fogli con i dettagli dipartimentali, personali e di contatto dei dipendenti.

ArrowRaw

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” nella scheda “Principale”.

ArrowMain

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

ArrowOutput

Spiegazione del codice

Worksheets.Add (after: = Worksheets (“Main”))

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 End If Above viene utilizzato il codice per limitare la copia dei dati dal foglio “Master” e “Principale”.

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 sorgente in ThisWorkbook.Worksheets If Source.Name = “Master” Then MsgBox “Master sheet già esistente”

Il codice Exit Sub End If Next Above 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.

Segui sotto per il codice

Option Explicit

Sub CopyColumns()

Dim Source As Worksheet

Dim Destination As Worksheet

Dim Last As Long

Application.ScreenUpdating = False

'Checking whether "Master" sheet already exists in the workbook

For Each Source In ThisWorkbook.Worksheets

If Source.Name = "Master" Then

MsgBox "Master sheet already exist"

Exit Sub

End If

Next

'Inserting new worksheets in the workbook

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

'Renaming the worksheet

Destination.Name = "Master"

'Looping through the worksheets in the workbook

For Each Source In ThisWorkbook.Worksheets





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



'Finding the last column from the destination sheet

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

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

Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]