Come applicare VBA PasteSpecial e mantenere la formattazione di origine in Excel

  • Condividi Questo
Hugh West

Tuttavia, ci sono situazioni in cui vogliamo duplicare più del semplice testo: possiamo copiare tutte le funzionalità di Excel, come la formattazione condizionale, la convalida dei dati, la formattazione dei tipi di dati e le caratteristiche estetiche come i bordi e i colori delle celle. Forse ammirate la combinazione di colori del vostro collega ma avete bisogno di dati statici, o forse le formule sono fantastiche ma non vi piace la combinazione di colori.In questa esercitazione mostreremo il metodo VBA PasteSpecial e mantenere la formattazione dell'origine in Excel.

Scarica il quaderno di esercizi

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

VBA IncollaSpeciale.xlsm

4 semplici esempi per applicare VBA PasteSpecial e mantenere la formattazione di origine in Excel

Verranno mostrati quattro esempi di utilizzo dell'incolla speciale in VBA mantenendo il formato di origine nelle sezioni seguenti. Ecco un esempio di set di dati che useremo per copiare e incollare.

1. Aggiungere una casella di input utilizzando VBA PasteSpecial e mantenere la formattazione di origine in Excel

Innanzitutto, utilizzeremo la casella per selezionare un intervallo e poi incollarlo in un'altra cella. Per farlo, seguite i passaggi seguenti.

Fase 1:

  • Innanzitutto, premere Alt + F11 per avviare un Macro .
  • Quindi, fare clic sul pulsante Inserire, scegliere il Modulo opzione.

Fase 2:

  • Incollare il seguente codice VBA.
 Sub PasteSpecialKeepFormat() 'Dichiara CopyCell e PasteCell come variabili di intervallo Dim CopyCell As Range, PasteCell As Range 'Assegna un nome alla casella di input xTitleId = "ExcelWIKI" 'Imposta l'intervallo di copia che verrà selezionato dal foglio di lavoro Set CopyCell = Application.Selection 'Imposta una casella di input per prendere un intervallo da cui copiare Set CopyCell = Application.InputBox("Select Range to Copy :", xTitleId, CopyCell.Address,Type:=8) 'Impostare una casella di input per prendere un intervallo in cui incollare Set PasteCell = Application.InputBox("Paste to any blank cell:", xTitleId, Type:=8) 'Comando per copiare l'intervallo selezionato CopyCell.Copy 'Comando per incollare l'intervallo PasteCell.Parent.Activate 'Comando per incollare le celle in modo che mantengano la formattazione di partenza PasteCell.PasteSpecial xlPasteValuesAndNumberFormats PasteCell.PasteSpecial xlPasteFormatsApplication.CutCopyMode = False Fine Sub 

Fase 3:

  • Risparmiare il programma e premere F5 per eseguirlo.
  • Dopo l'apparizione del 'ExcelWIKI' selezionare l'intervallo $B$4:$C$11 .
  • Cliccare OK .

Passo 4:

  • Selezionare una qualsiasi cella vuota da incollare.
  • Quindi, fare clic su OK.

  • Pertanto, si otterrà il valore della pasta mantenendo intatto il formato.

Per saperne di più: Differenza tra Incolla e Incolla speciale in Excel

2. Applicare VBA PasteSpecial per selezionare l'intervallo e mantenere la formattazione di origine in Excel

In VBA È anche possibile specificare degli intervalli e copiarli e incollarli mantenendo la formattazione dell'origine. Seguite i passaggi descritti di seguito per farlo.

Fase 1:

  • Stampa Alt + F11 per aprire Macro .
  • Creare un nuovo modulo dalla cartella Inserire
  • Incollare semplicemente quanto segue VBA codice per l'intervallo B4:C11 .
 Sub incollaSpeciale_MantieneFormato() 'seleziona l'intervallo da copiare Range("B4:C11").Copy 'seleziona la cella da incollare 'Comando per incollareSpeciale mantenendo il formato Range("E4").IncollaSpeciale xlPasteAllUsingSourceTheme End Sub 

Fase 2:

  • Infine, salvare il programma e premere F5 di conseguenza, si vedranno le modifiche come mostrato nell'immagine seguente.

Ulteriori informazioni: VBA Paste Special per copiare valori e formati in Excel (9 esempi)

Letture simili

  • Codice VBA per confrontare due fogli Excel e copiare le differenze
  • Excel VBA: copiare il valore della cella e incollarlo in un'altra cella
  • Come copiare più celle in un altro foglio in Excel (9 metodi)
  • Excel VBA: copiare un intervallo in un'altra cartella di lavoro
  • [Corretto]: Il tasto destro del mouse per copiare e incollare non funziona in Excel (11 soluzioni)

3. Dichiarare una variabile applicando VBA PasteSpecial e mantenere la formattazione di origine in Excel

Dichiarando le variabili e impostando le variabili su intervalli diversi, seguite i passaggi seguenti per incollareSpecial in VBA .

Fase 1:

  • Innanzitutto, premere Alt + F11 per aprire Macro VBA .
  • Selezionare un nuovo Modulo .
  • Quindi, incollare quanto segue Codice VBA .
 Sub Copy_Paste_Special() 'Dichiara le variabili Dim copy_Rng As Range, Paste_Range As Range 'Comando per copiare l'intervallo Set copy_Rng = Range("B4:C11") 'Comando per incollare l'intervallo Set Paste_Range = Range("E4") copy_Rng.Copy 'Incolla il comando in pasteSpecial mantenendo il formato Paste_Range.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub 

Fase 2:

  • Dopo aver salvato il programma, premere F5 per correre.
  • Pertanto, l'intervallo copiato verrà incollato mantenendo la formattazione di partenza.

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

4. Usate VBA PasteSpecial e mantenete la formattazione di origine in un altro foglio di lavoro in Excel.

In questa parte parleremo di un metodo molto significativo, perché vedremo come usare PasteSpecial in VBA in più cartelle di lavoro. Ad esempio, copiamo da 'Foglio4' e incollarlo in Foglio5 ," come mostrato nei passaggi seguenti.

Fase 1:

  • Per aprire Macro VBA , premere Alt + F11
  • Dal Inserire scegliere la scheda Modulo.
  • Quindi, incollare quanto segue VBA.
 Private Sub KeepSourceFormat() Application.ScreenUpdating = False 'Dichiarare le variabili Dim copyRng As Worksheet Dim pasteRng As Worksheet 'Impostare la destinazione dell'intervallo alla variabile Set copyRng = Worksheets("Sheet4") Set pasteRng = Worksheets("Sheet5") 'Impostare la destinazione delle celle incollate 'Per la cella E4, Rows.count = 5, Offset = 3 Set Destination = pasteRng.Cells(Rows.Count, 5).End(xlUp).Offset(3, 0)'Comando per copiare l'intervallo copyRng.Range("B4:C11").Copy 'Comando per incollare l'intervallo Destination.PasteSpecial Paste:=xlPasteValues Destination.PasteSpecial Paste:=xlPasteFormats Application.CutCopyMode = False Application.ScreenUpdating = True End Sub 

Fase 2:

  • Per eseguire il programma, premere F5 dopo aver salvato il programma.
  • Pertanto, si otterrà il valore incollato in scheda 5 mantenendo il formato della sorgente.

Per saperne di più: Come usare il comando Incolla speciale in Excel (5 modi adatti)

Conclusione

Per riassumere, spero che ora sappiate come utilizzare Excel VBA per incollare lo speciale Mantieni la formattazione dell'origine. Tutte queste strategie devono essere insegnate ai vostri dati e utilizzate. Esaminate il libro delle esercitazioni e applicate ciò che avete imparato. Siamo motivati a continuare a tenere lezioni come queste grazie al vostro importante supporto.

Non esitate a contattarci per qualsiasi domanda e condividete i vostri pensieri nella casella dei commenti qui sotto.

Le vostre domande troveranno risposta il prima possibile da parte della Exceldemy personale.

Restate con noi e continuate a imparare.

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.