Vba: come copiare un intervallo su un altro foglio
È possibile utilizzare la seguente sintassi in VBA per copiare un intervallo di celle su un altro foglio:
Sub CopyRangeToSheet()
Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial
Application.CutCopyMode = False
End Sub
Questa particolare macro copierà le celle nell’intervallo A1:C11 di Sheet1 e le incollerà nell’intervallo che inizia nella cella A1 di Sheet2 .
Nota : la riga Application.CutCopyMode = False specifica che la modalità taglia e copia deve essere disabilitata dopo l’esecuzione della macro.
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: copia l’intervallo su un altro foglio utilizzando VBA
Supponiamo di avere il seguente set di dati in un foglio chiamato Foglio1 in Excel che contiene informazioni su vari giocatori di basket:
Supponiamo di avere anche un altro foglio chiamato Foglio2 che attualmente è vuoto:
Diciamo che vogliamo copiare tutti i valori nell’intervallo A1:C11 dal Foglio1 e incollarli iniziando nella cella A1 del Foglio2 .
Per fare ciò possiamo creare la seguente macro:
Sub CopyRangeToSheet()
Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial
Application.CutCopyMode = False
End Sub
Quando eseguiamo questa macro, riceviamo il seguente output in Sheet2 :
Tieni presente che tutti i valori nell’intervallo A1:C11 da Sheet1 sono stati copiati in Sheet2 dalla cella A1 .
Per impostazione predefinita, i valori venivano incollati con la formattazione di origine.
Ad esempio, i valori della riga di intestazione sono in grassetto.
Se desideri incollare solo valori senza formattazione di origine, puoi specificare Paste:=xlPasteValues come segue:
Sub CopyRangeToSheet()
Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial Paste=xlPasteValues
Application.CutCopyMode = False
End Sub
Quando eseguiamo questa macro, riceviamo il seguente output in Sheet2 :
Tieni presente che solo i valori (senza formattazione) dell’intervallo A1:C11 di Sheet1 sono stati copiati in Sheet2 .
Nota : qui è possibile trovare la documentazione completa per il metodo VBA PasteSpecial .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
VBA: come incollare solo valori senza formattazione
VBA: come copiare linee visibili su un altro foglio
VBA: copia le righe su un altro foglio in base a criteri