Copiare una o più colonne da ogni foglio in un foglio utilizzando VBA in Microsoft Excel
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.
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”.
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
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]