Macro per copiare e incollare da un foglio di lavoro a un altro (15 metodi)

  • Condividi Questo
Hugh West

Sommario

Quando si ha a che fare con più fogli di Excel, a volte è necessario copiare i dati da un foglio di calcolo all'altro. Implementare VBA è il metodo più efficace, più rapido e più sicuro per eseguire qualsiasi operazione in Excel. In questo articolo vi mostreremo come copiare e incollare dati da un foglio di lavoro a un altro in Excel con l'opzione Macro VBA .

Scarica il libro di lavoro

È possibile scaricare la cartella di lavoro Excel gratuita da qui.

Copiare e incollare da un foglio di lavoro a un altro.xlsm

15 metodi con VBA per copiare e incollare dati da un foglio di lavoro a un altro in Excel

In questa sezione, imparerete 15 metodi su come potete copiare i dati da un foglio di lavoro e incollarli in un altro foglio di lavoro con VBA in Excel.

Qui sopra è riportato il set di dati che questo articolo prenderà in considerazione come esempio.

1. Incorporare la macro VBA per copiare e incollare un intervallo di dati da un foglio di lavoro all'altro

I passi per copiare e incollare un intervallo di dati da un foglio di lavoro a un altro con VBA sono descritti di seguito.

Passi:

  • All'inizio, premere Alt + F11 sulla tastiera o andare alla scheda Sviluppatore -> Visual Basic per aprire Editor Visual Basic .

  • Nella finestra del codice a comparsa, dalla barra dei menu, fare clic su Inserire -> Modulo .

  • Ora, copiare il seguente codice e pasta nella finestra del codice .
 Sub CopyPasteToAnotherSheet() Worksheets("Dataset").Range("B2:F9").Copy Worksheets("CopyPaste").Range("B2") End Sub 

Il codice è ora pronto per essere eseguito.

Questo pezzo di codice copiare l'intervallo da B2 a F9 dal foglio denominato Set di dati e incollare quelli del B2 Gamma nel CopiaIncolla scheda nominativa .

  • Quindi, premere F5 sulla tastiera o dalla barra dei menu selezionare Esegui -> Esegui Sub/UserForm Si può anche fare clic sul pulsante piccola icona Play nella barra dei menu secondari per eseguire la macro.

Osservate la seguente immagine.

Infine, tutti i dati del Set di dati è ora copiato nella cartella CopiaIncolla nella nostra cartella di lavoro Excel.

Per saperne di più: Excel VBA: copiare un intervallo in un'altra cartella di lavoro

2. Macro VBA per copiare e incollare dati da un foglio di lavoro attivo a un altro in Excel

Nella sezione precedente, non abbiamo richiesto l'attivazione del foglio di lavoro, ma in questa sezione impareremo come copiare e incollare dati in un foglio di lavoro attivo .

Passi:

  • Allo stesso modo di prima, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Nella finestra del codice, copiare il seguente codice e pasta it.
 Sub CopyPasteToAnotherActiveSheet() 'Copia i dati dal foglio di origine Sheets("Dataset").Range("B2:F9").Copy 'Attiva il foglio di destinazione Sheets("Paste").Activate 'Seleziona l'intervallo di destinazione Range("B2").Select 'Incolla nella destinazione ActiveSheet.Paste Application.CutCopyMode = False End Sub 

Il codice è ora pronto per essere eseguito.

  • Il prossimo, Correre il codice come mostrato sopra e vedere il risultato nell'immagine seguente.

Questa volta, tutti i dati del Set di dati è ora copiato nella cartella Incolla che abbiamo attivato prima di copiare i dati.

Per saperne di più: Formula di Excel per copiare il testo da una cella a un altro foglio

3. Copiare e incollare una singola cella da un foglio di lavoro a un altro in Excel con la macro VBA

Nelle sezioni precedenti si è appreso come copiare e incollare un intervallo di dati da un foglio di lavoro a un altro. Ora si vedrà come copiare e incollare quando si è un singolo dato nel foglio di calcolo Excel.

Osservate l'immagine seguente, il Gamma è costituito da un solo valore.

Vedremo come possiamo copiare e incollare questa cella in un altro foglio in Excel con VBA .

Passi:

  • Come mostrato sopra, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Nella finestra del codice, copiare il seguente codice e pasta
 Sub CopyPasteSingleRangeToAnotherSheet() Worksheets("Range").Range("B4").Copy Worksheets("CopyRange").Range("B2") End Sub 

Il codice è ora pronto per essere eseguito.

  • Il prossimo, Correre questo pezzo di codice e notate la seguente immagine.

Quel singolo dato " Copiare questa cella " in Cellula B4 nel Set di dati è ora copiato nella cartella CopiaCampo foglio in Cella B2 .

Per saperne di più: Excel VBA per copiare solo i valori nella destinazione (Macro, UDF e UserForm)

4. Incollare i dati copiati da un foglio di lavoro a un altro con il metodo PasteSpecial nella macro di Excel

È possibile copiare i dati da un foglio di lavoro e incollarli in vari modi con le funzioni di Excel IncollaSpeciale con il metodo VBA I passaggi per farlo sono indicati di seguito.

Passi:

  • Per prima cosa, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Secondo, copiare il seguente codice e pasta nella finestra del codice.
 Sub CopiaIncollaSpeciale() Worksheets("Dataset").Range("B2:F9").Copy Worksheets("PasteSpecial").Range("B2").PasteSpecial End Sub 

Il codice è ora pronto per essere eseguito.

  • Il prossimo, Correre questo pezzo di codice.

Guardate l'immagine qui sopra: i dati del Set di dati è ora trasferito nella cartella IncollaSpeciale foglio in Excel.

Per saperne di più: VBA Paste Special per copiare valori e formati in Excel (9 esempi)

5. Macro per copiare e incollare i dati sotto l'ultima cella da un foglio di lavoro a un altro in Excel

Abbiamo già alcuni dati nella cartella Set di dati (mostrato nella sezione introduttiva). Ora guardate la parte successiva di questa sezione: abbiamo dei nuovi dati in un altro foglio chiamato Ultima cella .

Ciò che vogliamo fare qui è dati specifici della copia (celle da B5 a F9) dal Set di dati foglio e pasta quelli in sotto l'ultima cella di questo Ultima cella foglio.

Passi:

  • In primo luogo, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • In secondo luogo, copiare il seguente codice e pasta nella finestra del codice.
 Sub CopyPasteBelowTheLastCell() 'Impostare le variabili Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long 'Impostare le variabili per i fogli di origine e di destinazione Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Last Cell") 'Trovare l'ultima riga utilizzata nel foglio di origine in base ai dati nella colonna B iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,'Trova la prima riga vuota nel foglio di destinazione in base ai dati della colonna B 'La proprietà Offset serve a spostare i dati copiati di una riga verso il basso iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row 'Copia i dati dall'origine e li incolla nella destinazione wsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B" & iTargetLastRow) End Sub 

Il codice è ora pronto per essere eseguito.

  • Il prossimo, Correre Guardate l'immagine qui sotto.

Qui, solo il dati selezionati dal Set di dati foglio è ora copiato sotto l'ultima cella del file Ultima cella foglio in Excel.

Per saperne di più: Formula per copiare e incollare valori in Excel (5 esempi)

6. Macro VBA per cancellare prima il foglio di lavoro e poi copiare e incollare in un altro foglio di lavoro

Cosa succede se nel foglio esistente sono presenti dati sbagliati e si desidera estrarre i dati originali.

Guardate la seguente immagine. cancellare i dati dal Gamma libera e memorizzare qui i dati del foglio Set di dati foglio con VBA codice.

Passi:

  • In primo luogo, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • In secondo luogo, copiare il seguente codice e pasta nella finestra del codice.
 Sub ClearAndCopyPasteData() 'Impostare le variabili Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long 'Impostare le variabili per i fogli di origine e di destinazione Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Clear Range") 'Trovare l'ultima riga utilizzata nel foglio di origine in base ai dati nella colonna B iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,'Trova la prima riga vuota nel foglio di destinazione in base ai dati della colonna B 'La proprietà Offset serve a spostare i dati copiati di una riga verso il basso iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row 'Cancella i dati dall'intervallo di destinazione wsTarget.Range("B5:F9" & iTargetLastRow).ClearContents 'Copia i dati dall'origine e li incolla nella destinazionewsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B5") End Sub 

Il codice è ora pronto per essere eseguito.

  • Il prossimo, Correre Guardate l'immagine seguente.

I dati precedenti nel Gamma libera è ora sostituito dai dati del foglio Set di dati foglio.

Per saperne di più: Macro per copiare i dati da una cartella di lavoro a un'altra sulla base di criteri

7. Macro per copiare e incollare dati da un foglio di lavoro a un altro con la funzione Range.Copy

Ora impareremo il VBA codice su come copiare e incollare dati da un foglio di lavoro a un altro con il Gamma.Copia in Excel.

Passi:

  • In primo luogo, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • In secondo luogo, copiare il seguente codice e pasta nella finestra del codice.
 Sub CopyWithRangeCopyFunction() 'Imposta le variabili Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Imposta le variabili per i fogli di origine e di destinazione Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Copy Range") 'Copia i dati dall'origine e li incolla nella destinazione Call wsSource.Range("B2:F9").Copy(wsTarget.Range("B2")) End Sub 

Il codice è ora pronto per essere eseguito.

  • Il prossimo, Correre questo pezzo di codice e guardate l'immagine seguente.

Abbiamo duplicato con successo i dati del Set di dati nella scheda Intervallo di copia con il foglio Gamma.Copia funzione.

Per saperne di più: Formula di Excel per copiare il valore della cella in un'altra cella

Letture simili

  • Excel VBA per copiare righe in un altro foglio di lavoro in base a criteri
  • Utilizzate VBA per incollare solo valori senza formattazione in Excel
  • Come copiare e incollare solo celle visibili in Excel (3 modi semplici)
  • Il copia e incolla non funziona in Excel (9 motivi e soluzioni)
  • Come copiare più righe in Excel utilizzando una macro (4 esempi)

8. Implementare il codice macro per duplicare i dati da un foglio di lavoro a un altro con la proprietà USEDRANGE

Questa volta impareremo il VBA codice su come copiare e incollare dati da un foglio di lavoro a un altro con il Gamma usata in Excel.

Passi:

  • Per prima cosa, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Secondo, copiare il seguente codice e pasta nella finestra del codice.
 Sub CopyWithUsedRange() 'Impostare le variabili Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Impostare le variabili per i fogli di origine e di destinazione Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("UsedRange") 'Copiare i dati dall'origine e incollarli nella destinazione Call wsSource.UsedRange.Copy(wsTarget.Cells(2, 2)) End Sub 

Il codice è ora pronto per essere eseguito.

  • Il prossimo, Correre questo pezzo di codice.

Come si può vedere nell'immagine precedente, abbiamo copiato e incollato con successo i dati dal file Set di dati nella scheda Gamma usata con il foglio GAMMA USATA proprietà.

Per saperne di più: Come copiare lo stesso valore in più celle in Excel (4 metodi)

9. Macro VBA per copiare e incollare dati selezionati da un foglio a un altro in Excel

È possibile copiare e incollare solo alcuni dati selezionati da un foglio di lavoro a un altro con VBA I passi per farlo sono illustrati di seguito.

Passi:

  • Per prima cosa, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Secondo, copiare il seguente codice e pasta nella finestra del codice.
 Sub CopyPasteSelectedData() 'Impostare le variabili Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Impostare le variabili per i fogli di origine e di destinazione Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Paste Selected") 'Copiare i dati dall'origine wsSource.Range("B4:F7").Copy 'Incollare i dati nella destinazione Call wsTarget.Range("B2").PasteSpecial(Paste:=xlPasteValues) End Sub 

Il codice è ora pronto per essere eseguito.

Questo codice copiare solo l'intervallo da B4 a F7 dal Set di dati foglio e incollare quelli del B2 Gamma nel IncollaSelezionato scheda nominativa .

  • Il prossimo, Correre questo codice.

Infine, solo i dati selezionati dal Set di dati sono stati copiati e incollati con successo nel file Incolla selezionato nella cartella di lavoro di Excel.

Per saperne di più: Come applicare VBA PasteSpecial e mantenere la formattazione di origine in Excel

10. Codice macro per duplicare i dati da un foglio di lavoro a un altro alla prima riga vuota

Qui vedremo come copia dei dati dal Set di dati foglio e pasta quelli del prima cella vuota in un altro foglio di lavoro in Excel con VBA .

Passi:

  • Per prima cosa, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Secondo, copiare il seguente codice e pasta nella finestra del codice.
 Sub FirstBlankCell() Range("B2:F9", Range("B" & Rows.Count).End(xlUp)).Copy Sheet13.Range("A65536").End(xlUp) End Sub 

Il codice è ora pronto per essere eseguito.

  • Il prossimo, Correre questo pezzo di codice.

Si veda l'immagine qui sopra. Scheda13 Il risultato è che il codice eseguito ha incollato i dati copiati dal file Set di dati nel foglio molto prima cella nel Scheda13 foglio in Excel.

Per saperne di più: Copia e incolla i valori nella riga vuota successiva con Excel VBA (3 esempi)

11. Incorporare VBA per copiare e incollare i dati filtrati automaticamente da un foglio Excel a un altro.

Possiamo filtrare il set di dati di origine e copiare e incollare solo i dati filtrati in un altro foglio di lavoro. Seguite questo articolo per imparare come farlo passo dopo passo con VBA .

Passi:

  • Per prima cosa, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Secondo, copiare il seguente codice e pasta nella finestra del codice.
 Option Explicit Sub AutoFilter() Range("B4:B101").AutoFilter 1, "Dean" Range("B4:F9").Copy Sheet17.Range("B" & Rows.Count).End(xlUp)(2) Range("B4").AutoFilter End Sub 

Il codice è ora pronto per essere eseguito.

  • Il prossimo, Correre Solo la riga che ha " Preside " in esso, verrà filtrato e copiato in un altro foglio.

Si noti nell'immagine precedente che solo i dati filtrati " Preside " dal Colonna B è ora copiato e incollato nella cartella Foglio15 foglio.

Per saperne di più: Come copiare e incollare in Excel usando VBA (7 metodi)

Letture simili

  • Come filtrare e copiare automaticamente le righe visibili con Excel VBA
  • Copiare valori unici in un altro foglio di lavoro in Excel (5 metodi)
  • Come copiare celle unite e filtrate in Excel (4 metodi)
  • Errore in fase di esecuzione 1004: il metodo PasteSpecial della classe Range è fallito
  • Come incollare un collegamento e trasporre in Excel (8 modi rapidi)

12. Incollare una riga in fondo a un intervallo mantenendo la formula copiata dall'intervallo superiore

Quando si vuole copiare un valore e mantenere la formula al suo interno mentre lo incolla in un'altra riga, poi con VBA è possibile eseguire l'operazione con facilità.

Passi:

  • Per prima cosa, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Secondo, copiare il seguente codice e pasta nella finestra del codice.
 Sub PasteRowWithFormulaFromAbove() Rows(Range("B" & Rows.Count).End(xlUp).Row).Copy Rows(Range("B" & Rows.Count).End(xlUp).Row + 1).Insert xlDown End Sub 

Il codice è ora pronto per essere eseguito.

  • Il prossimo, Correre questo codice e guardate l'immagine qui sotto.

Il l'ultima riga viene copiata esattamente come è nella riga accanto.

Per saperne di più: Come copiare automaticamente i dati da una cella all'altra in Excel

13. VBA per replicare i dati da un foglio a un altro foglio di un'altra cartella di lavoro aperta ma non salvata

Notate il nome della cartella di lavoro di esempio, Libro di lavoro delle fonti Copiamo i dati dal file Set di dati da questa cartella di lavoro e incollarlo in un altro foglio di lavoro in un'altra cartella di lavoro denominata Cartella di lavoro sulla destinazione cioè aperto ma non ancora salvato .

Passi:

  • Per prima cosa, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Secondo, copiare il seguente codice e pasta nella finestra del codice.
 Sub CopyOneFromAnotherNotSaved() Workbooks("Source Workbook").Worksheets("Dataset").Range("B2:F9").Copy Workbooks("Destination Workbook").Worksheets("Sheet1").Range("B2") End Sub 

Il codice è ora pronto per essere eseguito.

  • Il prossimo, Correre questo codice.

I dati del Set di dati nella scheda Libro di lavoro delle fonti è ora copiato nella cartella Foglio1 nella scheda Cartella di lavoro sulla destinazione .

Per saperne di più: Excel VBA: copiare il valore della cella e incollarlo in un'altra cella

14. Macro per riprodurre i dati da un foglio a un altro foglio di un'altra cartella di lavoro aperta e salvata

Questa volta copiare i dati dal Set di dati foglio dal Libro di lavoro delle fonti e pasta nella Foglio2 nel foglio di lavoro Cartella di lavoro sulla destinazione Ma ora, il la cartella di lavoro è aperta e salvata .

Passi:

  • Per prima cosa, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Secondo, copiare il seguente codice e pasta nella finestra del codice.
 Sub CopyOneFromAnotherSaved() Workbooks("Source Workbook.xlsm").Worksheets("Dataset").Range("B2:F9").Copy _ Workbooks("Destination Workbook.xlsx").Worksheets("Sheet2").Range("B2") End Sub 

Il codice è ora pronto per essere eseguito.

  • Il prossimo, Correre questo codice.

I dati del Set di dati nella scheda Libro di lavoro delle fonti è ora copiato nella cartella Foglio2 nella scheda Cartella di lavoro sulla destinazione E guardate il nome, questo è stata salvata la cartella di lavoro questa volta.

Per saperne di più: Come copiare e incollare in Excel senza cambiare il formato

15. Applicare VBA per copiare e incollare dati da un foglio di lavoro a un altro foglio di lavoro in un'altra cartella di lavoro chiusa.

Nelle due sezioni precedenti abbiamo imparato a copiare e incollare i dati da un foglio di lavoro a un altro in un'altra cartella di lavoro aperta. In questa sezione, impareremo il codice su come copiare e incollare i dati quando la cartella di lavoro è chiusa .

Passi:

  • Per prima cosa, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Secondo, copiare il seguente codice e pasta nella finestra del codice.
 Sub CopyOneFromAnotherClosed() 'Per aprire la cartella di lavoro salvata nel sistema 'modificare il percorso sottostante in base alla posizione del file nel sistema Workbooks.Open "D:\ExcelWIKI\Excel Folder\Destination Workbook.xlsx" 'Copia i dati dalla cartella di lavoro denominata Source Workbook e 'li incolla nella cartella di lavoro di destinazione denominata Destination Workbook("SourceWorkbook").Worksheets("Dataset").Range("B2:F9").Copy Workbooks("Destination Workbook").Worksheets("Sheet3").Range("B2") 'Chiudere la cartella di lavoro di destinazione dopo il salvataggio Workbooks("Destination Workbook").Close SaveChanges:=True End Sub 

Il codice è ora pronto per essere eseguito.

  • Il prossimo, Correre questo codice.

Anche se questa volta la cartella di lavoro è stata chiusa, dopo l'esecuzione del codice i dati della cartella di lavoro sono stati chiusi. Set di dati nella scheda Libro di lavoro delle fonti è ora copiato nella cartella Foglio3 nella scheda Cartella di lavoro sulla destinazione .

Per saperne di più: Excel VBA per copiare i dati da un'altra cartella di lavoro senza aprirla

Cose da ricordare

  • I metodi da 1 a 14 richiedono che le cartelle di lavoro vengano aperte Quando si eseguono i codici macro mostrati in questi metodi, non dimenticare di tenere aperte sia la cartella di lavoro di origine che quella di destinazione.
  • Mentre il vostro Le cartelle di lavoro vengono salvate, quindi scrivere il nome del file con il tipo di file all'interno del codice. Quando l'elemento le cartelle di lavoro non vengono salvate, quindi scrivere solo il nome del file senza il tipo di file. Per esempio, se il vostro file la cartella di lavoro viene salvata , quindi scrivere " Destinazione. xlsx ", ma se il la cartella di lavoro non viene salvata , quindi scrivere " Destinazione " all'interno del codice.

Conclusione

Questo articolo vi ha mostrato come copiare e incollare i dati da un foglio di lavoro a un altro in Excel con VBA Spero che questo articolo vi sia stato di grande aiuto. Non esitate a chiedere se avete domande sull'argomento.

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.