Cum să aplicați VBA PasteSpecial și să păstrați formatarea sursei în Excel

  • Imparte Asta
Hugh West

Cu toate acestea, există situații în care dorim să duplicăm mai mult decât un simplu text. Putem copia toate capacitățile Excel, cum ar fi formatarea condiționată, validarea datelor, formatarea tipurilor de date și caracteristicile estetice, cum ar fi marginile și culorile celulelor. Poate că admirați schema de culori a colegului dvs. dar aveți nevoie de date statice sau poate că formulele sunt fantastice, dar nu vă place schema de culori.În acest tutorial, vom arăta VBA PasteSpecial și păstrați formatarea sursei în Excel.

Descărcați caietul de practică

Descărcați acest caiet de exerciții pentru a vă antrena în timp ce citiți acest articol.

VBA PasteSpecial.xlsm

4 Exemple ușoare pentru a aplica VBA PasteSpecial și a păstra formatarea sursei în Excel

Vom demonstra patru exemple de utilizare a funcției speciale paste în VBA păstrând în același timp formatul sursă în secțiunile de mai jos. Iată un exemplu de set de date pe care îl vom folosi pentru a copia și lipi.

1. Adăugați caseta de intrare utilizând VBA PasteSpecial și păstrați formatarea sursei în Excel

În primul rând, vom folosi caseta pentru a selecta un interval și apoi îl vom lipi într-o altă celulă. Pentru a face acest lucru, urmați pașii de mai jos.

Pasul 1:

  • În primul rând, apăsați Alt + F11 pentru a începe un Macro .
  • Apoi, faceți clic pe butonul Introduceți, alegeți Modul opțiune.

Pasul 2:

  • Lipiți următorul cod VBA.
 Sub PasteSpecialKeepFormat() 'Declarați CopyCell și PasteCell ca variabile de interval Dim CopyCell As Range, PasteCell As Range 'Dați un nume Casetei de intrare xTitleId = "ExcelWIKI" 'Setați intervalul de copiere va fi selectat din foaia de lucru Set CopyCell = Application.Selection 'Setați o casetă de intrare pentru a lua un interval de copiere din Set CopyCell = Application.InputBox("Select Range to Copy :", xTitleId, CopyCell.Address,Type:=8) 'Setați o casetă de intrare pentru a lua un interval în care să se lipească Set PasteCell = Application.InputBox("Paste to any blank cell:", xTitleId, Type:=8) 'Comanda de copiere a intervalului selectat CopyCell.Copy 'Comanda de lipire a intervalului PasteCell.Parent.Activate 'Comanda pentru ca celulele lipite să păstreze formatarea sursă PasteCell.PasteSpecial xlPasteValuesAndNumberFormats PasteCell.PasteSpecial xlPasteFormatsApplication.CutCopyMode = False End Sub 

Pasul 3:

  • Salvați programul și apăsați F5 pentru a o rula.
  • După ce a apărut 'ExcelWIKI' caseta de selectare, selectați intervalul $B$4:$C$11 .
  • Faceți clic pe OK .

Pasul 4:

  • Selectați orice celulă goală pentru a o lipi.
  • Apoi, faceți clic pe BINE.

  • Prin urmare, veți obține valoarea de lipire păstrând intact formatul.

Citește mai mult: Diferența dintre Paste și Paste Special în Excel

2. Aplicați VBA PasteSpecial pentru a selecta intervalul și păstrați formatarea sursei în Excel

În VBA , puteți, de asemenea, să specificați intervale și să le copiați și să le lipiți, păstrând formatarea sursei. Urmați pașii descriși mai jos pentru a face acest lucru.

Pasul 1:

  • Presa Alt + F11 pentru a deschide Macro .
  • Creați un nou modul din Introduceți
  • Pur și simplu, lipiți următoarele VBA codul pentru intervalul B4:C11 .
 Sub pasteSpecial_KeepFormat() 'selectați intervalul pentru a copia Range("B4:C11").Copy 'selectați celula pentru a lipi 'Comanda pentru pasteSpecial păstrează formatul Range("E4").PasteSpecial xlPasteAllUsingSourceTheme End Sub 

Pasul 2:

  • În cele din urmă, salvați programul și apăsați F5 În consecință, veți vedea modificările, așa cum se arată în imaginea de mai jos.

Citește mai mult: VBA Paste Special pentru a copia valori și formate în Excel (9 exemple)

Lecturi similare

  • Cod VBA pentru a compara două foi Excel și a copia diferențele
  • Excel VBA: Copierea valorii celulei și lipirea în altă celulă
  • Cum să copiați mai multe celule într-o altă foaie în Excel (9 metode)
  • Excel VBA: Copierea intervalului în alt registru de lucru
  • [Fixed]: Copierea și lipirea cu clic dreapta nu funcționează în Excel (11 soluții)

3. Declararea variabilei prin aplicarea VBA PasteSpecial și păstrarea formatării sursei în Excel

Prin declararea variabilelor și setarea variabilelor în diferite intervale, urmați pașii de mai jos pentru a lipiSpecial în VBA .

Pasul 1:

  • Mai întâi de toate, apăsați Alt + F11 pentru a deschide Macro VBA .
  • Selectați un nou Modul .
  • Apoi, lipiți următoarele Cod VBA .
 Sub Copy_Paste_Special() 'Declarați variabilele Dim copy_Rng As Range, Paste_Range As Range 'Comanda pentru a copia intervalul Set copy_Rng = Range("B4:C11") 'Comanda pentru a lipi intervalul Set Paste_Range = Range("E4") copy_Rng.Copy 'Lipiți comanda în pasteSpecial cu păstrarea formatului Paste_Range.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub 

Pasul 2:

  • După ce ați salvat programul, apăsați F5 să funcționeze.
  • Prin urmare, intervalul copiat va fi lipit cu păstrarea formatării sursei ca înainte.

Citește mai mult: Cum se utilizează VBA PasteSpecial pentru formule și formate în Excel (3 moduri)

4. Folosiți VBA PasteSpecial și păstrați formatarea sursei în altă foaie de lucru în Excel

Vom vorbi despre o metodă foarte importantă în această parte. Pentru că vom vedea cum să folosim PasteSpecial în VBA în mai multe registre de lucru. De exemplu, vom copia din "Sheet4 și o lipiți în "Foaie5 ,", așa cum se arată în pașii de mai jos.

Pasul 1:

  • Pentru a deschide Macro VBA , apăsați Alt + F11
  • De la Introduceți selectați fila Modul.
  • Apoi, lipiți următoarele VBA.
 Private Sub KeepSourceFormat() Application.ScreenUpdating = False 'Declararea variabilelor Dim copyRng As Worksheet Dim pasteRng As Worksheet 'Setați destinația intervalului la variabilă Set copyRng = Worksheets("Sheet4") Set pasteRng = Worksheets("Sheet5") 'Setați destinația celulelor lipite 'Pentru celula E4, Rows.count = 5, Offset = 3 Set Destination = pasteRng.Cells(Rows.Count, 5).End(xlUp).Offset(3, 0)'Comanda de copiere a intervalului copyRng.Range("B4:C11").Copy 'Comanda de lipire a intervalului Destination.PasteSpecial Paste:=xlPasteValues Destination.PasteSpecial Paste:=xlPasteFormats Application.CutCopyMode = False Application.ScreenUpdating = True End Sub 

Pasul 2:

  • Pentru a rula programul, apăsați F5 după salvarea programului.
  • Prin urmare, veți obține valoarea lipită în foaia 5 cu păstrarea formatului sursă.

Citește mai mult: Cum să utilizați comanda specială Paste Special în Excel (5 moduri adecvate)

Concluzie

În concluzie, sper că acum știți cum să folosiți Excel VBA la Paste Special Păstrați formatarea sursei. Toate aceste strategii ar trebui să fie învățate și folosite pentru datele dvs. Examinați cartea de practică și aplicați ceea ce ați învățat. Suntem motivați să continuăm să ținem astfel de cursuri datorită sprijinului dvs. important.

Nu ezitați să ne contactați dacă aveți întrebări. Vă rugăm să ne împărtășiți opiniile dumneavoastră în caseta de comentarii de mai jos.

Întrebările dumneavoastră vor primi răspuns în cel mai scurt timp posibil de către Exceldemy personal.

Rămâneți alături de noi și continuați să învățați.

Hugh West este un trainer și analist Excel cu o experiență de peste 10 ani în industrie. Deține o diplomă de licență în contabilitate și finanțe și un master în administrarea afacerilor. Hugh are o pasiune pentru predare și a dezvoltat o abordare unică de predare care este ușor de urmărit și de înțeles. Cunoștințele sale experte despre Excel au ajutat mii de studenți și profesioniști din întreaga lume să-și îmbunătățească abilitățile și să exceleze în cariera lor. Prin blogul său, Hugh își împărtășește cunoștințele lumii, oferind tutoriale gratuite Excel și instruire online pentru a ajuta persoanele și companiile să-și atingă întregul potențial.