Questo articolo dimostrerà come utilizzare VBA per copiare un intervallo di celle in un altro foglio o cartella di lavoro.
Per ulteriori informazioni, leggi il nostro Tutorial per copiare e incollare VBA.
Copia su foglio esistente
Per copiare un intervallo di celle da un foglio a un altro foglio già esistente possiamo utilizzare il seguente codice:
123456 | Sottocopia e incollaActiveSheet.Range("A1:D10").SelezionaSelezione.CopiaFogli("Foglio2").SelezionaActiveSheet.PasteFine sottotitolo |
Questo copierà le informazioni memorizzate nell'intervallo di fogli attivi A1: D10 e le incollerà in un Foglio2 esistente. Poiché non abbiamo specificato l'intervallo da selezionare nel foglio 2, lo incollerà automaticamente in Range ("A1"). Incollerà anche qualsiasi formattazione nel foglio 2 che era nell'intervallo nel foglio 1.
Se desideriamo incollarlo in una posizione diversa nel foglio 2, possiamo selezionare la cella o l'intervallo di partenza in cui incollare. Il codice seguente incollerà le informazioni a partire dalla cella E2.
1234567 | Sub CopyAndPasteToRangeActiveSheet.Range("A1:D10").SelezionaSelezione.CopiaFogli("Foglio2").SelezionaIntervallo("E1").SelezionaActiveSheet.PasteFine sottotitolo |
Per incollare semplicemente i valori nel foglio 2 e non includere la formattazione, possiamo utilizzare il seguente codice. Ancora una volta, non è necessario specificare l'intervallo in cui eseguire la pagina se desideriamo incollare nella cella A1.
123456 | Sub CopyAndPasteValuesActiveSheet.Range("A1:D10").SelezionaSelezione.CopiaFogli("Foglio2").SelezionaSelection.PasteSpecial Paste:=xlPasteValuesFine sottotitolo |
Copia su nuovo foglio
Per copiare e poi incollare in un nuovo foglio, possiamo utilizzare il seguente codice:
123456 | Sub CopyAndPasteNewSheetActiveSheet.Range("A1:D10").SelezionaSelezione.CopiaFogli.Aggiungi dopo:=Foglio attivoActiveSheet.PasteFine sottotitolo |
Per copiare solo i valori, possiamo usare ancora una volta xlPasteValues.
Copia nella cartella di lavoro esistente
Per copiare e incollare completamente in una cartella di lavoro diversa, possiamo avere entrambe le cartelle di lavoro già aperte oppure utilizzare il codice per aprire un'altra cartella di lavoro e quindi incollare in quella cartella di lavoro.
Questo codice riportato di seguito viene copiato in una cartella di lavoro esistente già aperta.
1234567 | Sub CopyAndPasteExistingBookIntervallo ("A1: D10"). SelezionaSelezione.CopiaWindows("CombinedBranches.xlsx").AttivaFogli.Aggiungi dopo:=Foglio attivoActiveSheet.PasteFine sottotitolo |
Programmazione VBA | Il generatore di codice funziona per te!
Questo codice di seguito verrà copiato e incollato in un nuovo foglio in una seconda cartella di lavoro che verrà aperta dal codice.
1234567 | Sub CopyAndPasteOpenWorkbookIntervallo ("A1: D9"). SelezionaSelezione.CopiaWorkbooks.Open Filename:= "C:\ExcelFiles\CombinedBranches.xlsx"Fogli.Aggiungi dopo:=Foglio attivoActiveSheet.PasteFine foglio |
SUGGERIMENTO: sostituisci il nome del file nell'argomento Workbooks.Open con il tuo nome file!
Copia in una nuova cartella di lavoro
Possiamo anche copiare e incollare in una nuova cartella di lavoro.
123456 | Sub CopyAndPasteNewWorkbookIntervallo ("A1: D9"). SelezionaSelezione.CopiaCartelle di lavoro.AggiungiActiveSheet.PasteFine sottotitolo |