Hur man tillämpar VBA PasteSpecial och behåller källformateringen i Excel

  • Dela Detta
Hugh West

Det finns dock situationer när vi vill kopiera mer än bara text. Vi kan kopiera alla Excels funktioner, t.ex. villkorlig formatering, validering av data, formatering av datatyper och estetiska funktioner som ramar och cellfärger. Du kanske beundrar din kollegas färgschema men behöver statiska data, eller så är formlerna fantastiska men du ogillar färgschemat.I den här handledningen visar vi VBA PasteSpecial och behåller källformateringen i Excel.

Ladda ner övningsboken

Ladda ner den här arbetsboken för att träna medan du läser den här artikeln.

VBA PasteSpecial.xlsm

4 enkla exempel på hur du använder VBA PasteSpecial och behåller källformateringen i Excel

Vi visar fyra exempel på hur du kan använda specialfunktionen för att klistra in i VBA samtidigt som du behåller källformatet i avsnitten nedan. Här är ett exempel på en datamängd som vi kommer att använda för att kopiera och klistra in.

1. Lägg till inmatningsfältet med hjälp av VBA PasteSpecial och behåll källformatering i Excel

Först och främst ska vi använda rutan för att välja ett intervall och sedan klistra in det i en annan cell. Följ stegen nedan för att göra det.

Steg 1:

  • Först trycker du på Alt + F11 för att starta en Makro .
  • Klicka sedan på Infoga, välja den Modul alternativ.

Steg 2:

  • Klistra in följande VBA-kod.
 Sub PasteSpecialKeepFormat() 'Deklarera CopyCell och PasteCell som intervallvariabler Dim CopyCell As Range, PasteCell As Range 'Ge ett namn till inmatningsrutan xTitleId = "ExcelWIKI" 'Ställ in att kopieringsintervallet kommer att väljas från kalkylbladet Set CopyCell = Application.Selection 'Ställ in en inmatningsruta för att ta ett intervall att kopiera från Set CopyCell = Application.InputBox("Välj intervall att kopiera:", xTitleId, CopyCell.Address,Type:=8) 'Ställ in en inmatningsruta för att ta ett intervall att klistra in i Set PasteCell = Application.InputBox("Klistra in i vilken tom cell som helst:", xTitleId, Type:=8) 'Kommando för att kopiera det valda intervallet CopyCell.Copy 'Kommando för att klistra in intervallet PasteCell.Parent.Activate 'Kommando för att klistra in de klistrade cellerna så att de behåller källans formatering PasteCell.PasteSpecial xlPasteValuesAndNumberFormats PasteCell.PasteSpecial xlPasteFormatsApplication.CutCopyMode = False End Sub 

Steg 3:

  • Spara programmet och tryck på F5 för att köra den.
  • Efter att ha varit med i 'ExcelWIKI' Välj intervallet i rutan $B$4:$C$11 .
  • Klicka på OK .

Steg 4:

  • Välj en tom cell för att klistra in.
  • Klicka sedan på OKEJ.

  • Därför får du det bästa värdet av klistret om du behåller formatet intakt.

Läs mer: Skillnaden mellan klistra in och klistra in special i Excel

2. Använd VBA PasteSpecial för att välja intervall och behålla källformateringen i Excel

VBA Du kan också ange områden och kopiera och klistra in dem med bibehållen källformatering. Följ de beskrivna stegen nedan för att göra det.

Steg 1:

  • Tryck på Alt + F11 för att öppna Makro .
  • Skapa en ny modul från Infoga
  • Klistra helt enkelt in följande VBA kod för intervallet B4:C11 .
 Sub pasteSpecial_KeepFormat() 'välj område att kopiera Range("B4:C11").Copy 'välj cell att klistra in 'Kommando för att klistra inSpecial behåller formatet Range("E4").PasteSpecial xlPasteAllUsingSourceTheme End Sub 

Steg 2:

  • Slutligen sparar du programmet och trycker på F5 Du kommer att se ändringarna som visas i bilden nedan.

Läs mer: VBA-klistra in specialfunktioner för att kopiera värden och format i Excel (9 exempel)

Liknande läsningar

  • VBA-kod för att jämföra två Excel-blad och kopiera skillnader
  • Excel VBA: Kopiera cellvärde och klistra in det i en annan cell
  • Kopiera flera celler till ett annat ark i Excel (9 metoder)
  • Excel VBA: Kopiera intervall till en annan arbetsbok
  • [Rättad]: Högerklicka på kopiera och klistra in fungerar inte i Excel (11 lösningar)

3. Deklarera variabel genom att tillämpa VBA PasteSpecial och behålla källformateringen i Excel

Genom att deklarera variabler och ställa in variabler i olika intervall följer du stegen nedan för att klistra inSpecial i VBA .

Steg 1:

  • Först och främst trycker du på Alt + F11 för att öppna VBA-makro .
  • Välj en ny Modul .
  • Klistra sedan in följande VBA-kod .
 Sub Copy_Paste_Special() 'Deklarera variabler Dim copy_Rng As Range, Paste_Range As Range 'Kommando för att kopiera området Set copy_Rng = Range("B4:C11") 'Kommando för att klistra in området Set Paste_Range = Range("E4") copy_Rng.Copy 'Klistra in kommandot i pasteSpecial med format Paste_Range.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub 

Steg 2:

  • När du har sparat programmet trycker du på F5 att köra.
  • Därför kommer det kopierade intervallet att klistras in med samma formatering som tidigare.

Läs mer: Hur du använder VBA PasteSpecial för formler och format i Excel (3 sätt)

4. Använd VBA PasteSpecial och behåll källformateringen i ett annat kalkylblad i Excel

Vi kommer att prata om en mycket viktig metod i den här delen. Eftersom vi kommer att gå igenom hur du använder PasteSpecial i VBA i flera arbetsböcker. Vi kopierar till exempel från 'Sheet4' och klistra in den i "Blad5 ," enligt stegen nedan.

Steg 1:

  • Öppna VBA-makro , tryck på Alt + F11
  • Från Infoga Välj fliken Modul.
  • Klistra sedan in följande VBA.
 Private Sub KeepSourceFormat() Application.ScreenUpdating = False 'Deklarera variabler Dim copyRng As Worksheet Dim pasteRng As Worksheet 'Ställ in intervallets destination till variabeln Set copyRng = Worksheets("Sheet4") Set pasteRng = Worksheets("Sheet5") 'Ställ in destinationen för de klistrade cellerna 'För cell E4, Rows.count = 5, Offset = 3 Set Destination = pasteRng.Cells(Rows.Count, 5).End(xlUp).Offset(3, 0)'Kommando för att kopiera området copyRng.Range("B4:C11").Copy 'Kommando för att klistra in området Destination.PasteSpecial Paste:=xlPasteValues Destination.PasteSpecial Paste:=xlPasteFormats Application.CutCopyMode = False Application.ScreenUpdating = True End Sub 

Steg 2:

  • För att köra programmet trycker du på F5 efter att ha sparat programmet.
  • Därför får du det inplacerade värdet i blad 5 med bibehållande av källformatet.

Läs mer: Hur du använder kommandot Klistra in specialkommandot i Excel (5 lämpliga sätt)

Slutsats

För att sammanfatta hoppas jag att du nu vet hur du ska använda Excel VBA till Paste Special Keep Source Formatting. Alla dessa strategier bör du lära dig och använda för dina data. Undersök övningsboken och tillämpa det du lärt dig. Vi motiveras att fortsätta hålla sådana här föreläsningar tack vare ert viktiga stöd.

Tveka inte att kontakta oss om du har några frågor och dela gärna med dig av dina tankar i kommentarsfältet nedan.

Dina frågor kommer att besvaras så snart som möjligt av Excellent personal.

Stanna hos oss och fortsätt att lära dig.

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.