Come copiare e spostare un foglio utilizzando vba?

Puoi copiare e spostare un foglio in Excel utilizzando il codice VBA e in questo tutorial impareremo diversi modi per farlo.

Copia un foglio nella stessa cartella di lavoro

Se desideri copiare un foglio nella stessa cartella di lavoro, puoi utilizzare il seguente codice in cui hai utilizzato il metodo di copia.

 Sheets("Sheet5").Copy Before:=Sheets(1)

In questo codice, foglio1 è il primo foglio della cartella di lavoro e quando si esegue questo codice, copia il foglio con nome “Foglio5” prima del primo foglio della cartella di lavoro.

copiare-un-foglio-nello-stesso-raccoglitore

E se vuoi copiarlo dopo il primo foglio, il codice sarebbe il seguente.

 Sheets("Sheet5").Copy After:=Sheets(1)

E se vuoi copiarlo dopo il primo foglio, il codice sarebbe il seguente.

 Sheets("Sheet5").Copy Before:=Sheets("Sheet3") Sheets("Sheet5").Copy After:=Sheets("Sheet3")

Quando esegui questo codice VBA, copia il “Foglio5” prima e dopo il “Foglio3”.

codice vba se vuoi copiarlo dopo il primo foglio

Con la seguente riga di codice è possibile copiare un foglio dopo l’ultimo foglio della cartella di lavoro. Utilizza sheet.count per ottenere il numero di fogli, quindi utilizza il conteggio per copiare il foglio per ultimo.

 Sheets("myNewSheet").Move After:=Sheets(Sheets.Count)
copiare-un-foglio-dopo-l'ultimo-foglio-nel-rilegatore

Link utili: Esegui una macroRegistratore di macroVisual Basic EditorManuale delle macro personali

Copia un foglio nella stessa cartella di lavoro con un nuovo nome

E se vuoi copiare un foglio e poi rinominarlo immediatamente, devi utilizzare la proprietà name, proprio come nel codice seguente.

 Sheets("Sheet5").Move Before:=Sheets(1) ActiveSheet.Name = "myNewSheet"
copiare-un-foglio-nella-stessa-cartella-di-lavoro-con-il-nuovo-nome

Sposta un foglio nella stessa cartella di lavoro

Per spostare un foglio nella stessa cartella di lavoro, è necessario utilizzare il metodo di spostamento come nel codice seguente.

 Sheets("Sheet5").Move After:=Sheets(1)
spostare un foglio nello stesso raccoglitore

Questo codice sposterà “Foglio5” prima di “Foglio2” come puoi vedere nell’istantanea sopra.

Copia un foglio nella nuova cartella di lavoro

Quando si utilizza il metodo di copia senza definire un foglio nella cartella di lavoro corrente, VBA apre una nuova cartella di lavoro e copia quel foglio in quella cartella di lavoro.

 Sheets("Sheet5").Copy

E per spostare un foglio in una nuova cartella di lavoro.

 Sheets("Sheet5").Move

Copia più fogli nella nuova cartella di lavoro

Se desideri aggiungere più fogli alla nuova cartella di lavoro contemporaneamente, utilizza un codice come questo.

 Sheets(Array("Sheet2", "Sheet3", "Sheet4", "Sheet5")).Copy

Il codice precedente crea una serie di fogli e quindi li copia tutti in una nuova cartella di lavoro.

Copia un foglio in un’altra cartella di lavoro

Se desideri copiare un foglio in un’altra cartella di lavoro già aperta, puoi menzionare il nome della cartella di lavoro dopo o prima dell’argomento.

 Sheets("Sheet1").Copy Before:=Workbooks("Book1.xlsx").Sheets(1)

Il codice sopra copia il Foglio1 dalla cartella di lavoro attiva e lo aggiunge prima del primo foglio di Book1.xlsx che è già aperto.

E se vuoi spostalo.

 Sheets("Sheet1").Move Before:=Workbooks("Book1.xlsx").Sheets(1)

Copia un foglio in una cartella di lavoro chiusa

C’è un modo per copiare un foglio in una cartella di lavoro chiusa e non è necessario aprirla. Guarda il codice qui sotto.

 Sub vba_copy_sheet() Dim mybook As Workbook Application.ScreenUpdating = False Set mybook = _ Workbooks.Open _ ("C:UsersDellDesktopsamplefile.xlsx") Workbooks("Book1.xlsx").Sheets("Sheet2").Copy Before:=mybook.Sheets(1) mybook.Close SaveChanges:=True Application.ScreenUpdating = True End Sub

In questo codice hai la variabile myBook e quindi una cartella di lavoro ad essa assegnata. Abbiamo disabilitato l’aggiornamento dello schermo in modo che il codice possa eseguire l’attività nel backend.

Copia un foglio da un’altra cartella di lavoro senza aprirlo

Allo stesso modo, puoi copiare e spostare un foglio da una cartella di lavoro chiusa. Guarda il codice qui sotto.

 Sub vba_copy_sheet() Dim mybook As Workbook Application.ScreenUpdating = False Set mybook = _ Workbooks.Open _ ("C:UsersDellDesktopsamplefile.xlsx") mybook.Sheets("mySheet").Copy Before:=Workbooks("Book1.xlsx").Sheets(1) mybook.Close SaveChanges:=True Application.ScreenUpdating = True End Sub

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *