VBA Paste Special per copiare valori e formati in Excel (9 esempi) -

  • Condividi Questo
Hugh West

Quando abbiamo bisogno di copiare e incollare qualsiasi dato in Microsoft Excel, abbiamo a disposizione diversi strumenti di scelta rapida e barra multifunzione in Excel. VBA Anche le Macro dispongono di questa funzione piuttosto che le opzioni della cartella di lavoro. Discuteremo la VBA Incolla speciale valori e formati in Excel.

Scarica il quaderno di esercizi

Scaricate questo quaderno di esercizi per esercitarvi durante la lettura di questo articolo.

Valori e formati con PasteSpecial.xlsm

9 esempi per copiare valori e formati con lo speciale Incolla in Excel VBA

In questo articolo discuteremo 9 metodi con Macro VBA per Incolla speciale valori e formato in Excel.

A tal fine considereremo il set di dati riportato di seguito.

1. Applicare InputBox in VBA Incolla speciale per copiare valori e formati

In questo esempio si utilizzerà l'opzione InputBox per Incolla speciale .

Fase 1:

  • Vai al sito Sviluppatore scheda.
  • Fare clic su Macro di registrazione .
  • Set Excel_Incolla_Speciale_1 come il Nome della macro .
  • Quindi premere OK .

Fase 2:

  • A questo punto, fare clic sul pulsante Macro comando.
  • Selezionare la voce Macro e poi premere Entrate in casa .

Fase 3:

  • Copiare e incollare il seguente codice nel modulo di comando.
 Sub Excel_Incolla_Speciale_1() Dim Copia_Cella Come Intervallo, Incolla_Cella Come Intervallo xTitoloId = "Foglio_Salario" Set Copia_Cella = Application.Selection Set Copia_Cella = Application.InputBox("Seleziona l'intervallo da copiare:", xTitoloId, Copia_Cella.Indirizzo, Tipo:=8) Set Incolla_Cella = Application.InputBox("Incolla in una cella vuota qualsiasi:", xTitoloId, Tipo:=8) Copia_Cella.Copia Incolla_Cella.Parent.Attiva Incolla_Cella.IncollaSpecialexlPasteValuesAndNumberFormats Paste_Cell.PasteSpecial xlPasteFormats Application.CutCopyMode = False End Sub 

Passo 4:

  • Stampa F5 per eseguire il codice.
  • Verrà visualizzata una nuova finestra di dialogo, nella quale selezionare l'intervallo di origine.
  • Quindi premere OK .

Passo 5:

  • Viene visualizzata un'altra finestra di dialogo. Scegliere un intervallo vuoto in cui incollare le celle copiate.

Ora guardate il set di dati.

Tutti i dati vengono copiati con valori e formati utilizzando l'opzione VBA Incolla speciale .

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

2. Inserire un intervallo di celle con valori e formati utilizzando xlPasteAllUsingSourceTheme in VBA Incolla speciale

Inseriamo l'intervallo di celle direttamente nel campo VBA codice in questa sezione.

Fase 1:

  • Stampa Alt+F11 per accedere al modulo di comando.
  • Inserite il seguente codice nel modulo di comando.
 Sub Excel_Paste_Special_2() Range("B4:C9").Copy Range("E4").PasteSpecial xlPasteAllUsingSourceTheme End Sub 

Fase 2:

  • Ora, premere F5 per eseguire il codice.

Questo xlPasteAllUsingSourceTheme copia l'esatto duplicato dei dati di origine.

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

3. Utilizzare una variabile VBA per inserire un intervallo di valori e formati utilizzando lo speciale incolla.

Verrà mostrato l'uso delle variabili nel VBA Incolla speciale codice qui.

Fase 1:

  • Per prima cosa, entrare nel modulo di comando premendo Alt+F11 .
  • Scrivete il codice seguente nel modulo di comando.
 Sub Excel_Incolla_Speciale_3() Dim source_rng As Range, paste_rng As Range Set source_rng = Range("B4:C9") Set paste_rng = Range("E4") source_rng.Copy paste_rng.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub 

Fase 2:

  • Stampa F5 ed eseguire il codice.

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

4. Usare xlPasteValues e xlPasteFormats per copiare valori e formati in un altro foglio, mantenendo inalterati i formati.

I metodi precedenti sono stati utilizzati per copiare e incollare i dati nello stesso foglio. Ora mostreremo come utilizzare l'opzione VBA Incolla speciale per fogli diversi.

Fase 1:

  • Accedere al modulo di comando facendo clic su Alt+F11 e copiarvi il seguente codice.
 Private Sub Excel_Paste_Special_4() Application.ScreenUpdating = False Dim source_rng As Worksheet Dim paste_rng As Worksheet Set source_rng = Worksheets("Data_Set") Set paste_rng = Worksheets("Different_Sheet") Set Destination = paste_rng.Range("B2") source_rng.Range("B2:C9").Copy Destination.PasteSpecial Paste:=xlPasteValues Destination.PasteSpecial Paste:=xlPasteFormatsApplication.CutCopyMode = False Application.ScreenUpdating = True End Sub 

Fase 2:

  • Stampa F5 per eseguire il codice.

Si può notare che i dati del Dati_Set viene copiato in Foglio_diverso .

Per saperne di più: Come utilizzare VBA PasteSpecial per formule e formati in Excel (3 modi)

Letture simili

  • Come copiare più celle in un altro foglio in Excel (9 metodi)
  • Differenza tra Incolla e Incolla speciale in Excel
  • Excel VBA per copiare dati da un'altra cartella di lavoro senza aprirla
  • Come copiare e incollare in Excel mantenendo le dimensioni delle celle (7 esempi)
  • Copia e incolla i valori nella riga vuota successiva con Excel VBA (3 esempi)

5. Utilizzare xlPasteFormats per incollare solo i formati

Nei metodi precedenti, abbiamo copiato tutti i dati e li abbiamo incollati senza alcuna modifica, ma in questa sezione copieremo solo il formato dei dati.

Fase 1:

  • Passare al modulo di comando premendo Alt+F11 .
  • Copiare e incollare il codice sottostante nel modulo di comando.
 Sub Excel_Incolla_Speciale_5() Range("B2:C9").Copy Range("E2").PasteSpecial xlPasteFormats End Sub 

Fase 2:

  • A questo punto, premere il tasto F5 ed eseguire il codice.

Guardate il set di dati: sono stati copiati solo i formati, non sono presenti valori.

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

6. Usare xlPasteValues per incollare solo i valori

Possiamo copiare i valori solo utilizzando il metodo VBA Incolla speciale .

Fase 1:

  • Stampa Alt+F11 per accedere al modulo di comando.
  • Scrivete il seguente codice sul modulo di comando.
 Sub Excel_Incolla_Speciale_6() Range("B4:C9").Copy Range("E4").PasteSpecial xlPasteValues End Sub 

Fase 2:

  • Fare clic su F5 ed eseguire il codice.

Notate il set di dati: qui vengono copiati solo i valori, mentre in questo metodo non vengono copiati i formati.

Per saperne di più: Come utilizzare VBA per incollare solo valori senza formattazione in Excel

7. Copiare e incollare tutto il contenuto di una singola cella

Nelle sezioni precedenti abbiamo copiato un intervallo di dati, mentre qui copieremo solo una singola cella.

Fase 1:

  • Ora, premere Alt+F11 e accedere al modulo di comando.
  • Digitare il seguente codice sul modulo.
 Sub Excel_Incolla_Speciale_7() Range("B4").Copy Range("E4").PasteSpecial xlPasteAllUsingSourceTheme End Sub 

Fase 2:

  • A questo punto, premere il tasto F5 per eseguire il codice.

Si può notare che qui viene copiata una singola cella e non un intervallo.

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

8. Copiare e incollare tutti gli attributi di una determinata colonna con VBA

Come per una singola cella, possiamo copiare una singola colonna del set di dati.

Fase 1:

  • È sufficiente premere il tasto Alt+F11 per accedere al modulo di comando.
  • Scrivete il codice sottostante nel modulo.
 Sub Excel_Incolla_Speciale_8() Dim source_rng As Range, paste_rng As Range Set source_rng = Colonne("C") Set paste_rng = Colonne("E") source_rng.Copy paste_rng.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub 

Fase 2:

  • Eseguite il codice premendo F5 .

Qui possiamo vedere che Colonna B viene copiato in Colonna E .

Per saperne di più: [Corretto]: Il tasto destro del mouse per copiare e incollare non funziona in Excel (11 soluzioni)

9. Copiare e incollare tutti gli attributi di una riga con Excel VBA

Allo stesso modo, possiamo copiare una singola riga utilizzando il metodo Incolla speciale .

Fase 1:

  • Fare clic su Alt+F11 per accedere al modulo di comando.
  • Copiare il seguente codice nel modulo di comando.
 Sub Excel_Incolla_Speciale_9() Dim source_rng As Range, paste_rng As Range Set source_rng = Rows("4") Set paste_rng = Rows("11") source_rng.Copy paste_rng.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub 

Fase 2:

  • Eseguite il codice premendo F5 .

Qui, Fila 4 viene copiato in Fila 11 .

Per saperne di più: Come copiare più righe in Excel utilizzando una macro (4 esempi)

Conclusione

In questo articolo abbiamo spiegato 9 metodi di VBA Incolla valori e formati speciali in Excel. Spero che questo possa soddisfare le vostre esigenze. Vi invitiamo a consultare il nostro sito web Exceldemy.com e date i vostri suggerimenti nella casella dei commenti.

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.