In deze zelfstudie leert u verschillende methoden om te kopiëren en plakken en knippen en plakken met behulp van een VBA-macro. Lees de begeleidende tutorial over Value Pasting en PasteSpecial voor meer geavanceerde kopieer- en plakopties.
Om deze code te gebruiken: Open de Visual Basic Editor (Alt + F11), Voeg een nieuwe module in (Invoegen > Module) en kopieer & plak de gewenste code in de module.
Kopieer (knippen) en plak een enkele cel
Dit voorbeeld kopieert of knipt en plakt een enkele cel, A1 naar B1:
123456789 | Sub Paste_OneCell()'Kopieer en plak één cel'Bereik ("A1"). Bereik kopiëren ("B1")'Knip en plak één cel'Bereik ("A1"). Snijbereik ("B1")Einde sub |
Selectie kopiëren
Als u de actieve selectie wilt kopiëren, gebruikt u dit:
123456789101112 | Sub Kopie Selectie()'Plakken naar een gedefinieerd bereik'Selectie.kopieerbereik ("b1")'Verschuiving plakken (verschuift 2 cellen naar beneden en 1 naar rechts)Selectie.kopiërenSelectie.offset(2,1).plakkenApplication.CutCopyMode = FalseEinde sub |
Een reeks cellen kopiëren (knippen) en plakken
Dit voorbeeld kopieert of knipt en plakt een reeks cellen, A1:A3 naar B1:B3:
123456789 | Sub Paste_Range()'Kopieer en plak een reeks cellen'Bereik ("A1:A3"). Bereik kopiëren ("B1:B3")'Knip en plak een reeks cellen'Bereik ("A1:A3"). Snijbereik ("B1:B3")Einde sub |
Kopieer (knippen) en plak een hele kolom
Hieronder zullen we een paar snelle voorbeelden demonstreren. Lees ons artikel over het kopiëren en plakken van rijen en kolommen voor gedetailleerde voorbeelden, uitleg en variaties.
Dit voorbeeld kopieert of knipt en plakt een hele kolom, A naar B:
12345678910 | Sub plakkenOneColumn()'Kopieer en plak kolom'Bereik ("A: A"). Bereik kopiëren ("B: B")'Kolom knippen en plakken'Bereik ("A:A"). Snijbereik ("B:B")Einde sub |
Kopieer (knippen) en plak een hele rij
Dit voorbeeld kopieert of knipt en plakt een hele rij, van 1 naar 2:
12345678910 | Sub Paste_OneRow()'Kopieer en plak rij'Bereik ("1:1"). Bereik kopiëren ("2:2")'Knip en plak rij'Bereik ("1:1"). Snijbereik ("2:2")Einde sub |
Kopiëren (knippen) en plakken naar een ander werkblad of werkmap
1234567891011121314 | Sub Paste_Other_Sheet_or_Book()'Knip of kopieer en plak naar een ander werkblad'Werkbladen("blad1").Bereik("A1").Kopieer werkbladen("blad2").Bereik("B1") 'KopiërenWorksheets("sheet1").Bereik("A1").Cut Worksheets("sheet2").Bereik("B1") 'Cut'Knip of kopieer en plak in een andere werkmap'Werkmappen ("book1.xlsm"). Werkbladen ("sheet1"). Bereik ("A1"). Kopieer _Werkmappen ("book2.xlsm"). Werkbladen ("sheet1"). Bereik ("B1") 'KopiërenWerkmappen ("book1.xlsm"). Werkbladen ("sheet1"). Bereik ("A1"). Knip _Werkmappen ("book2.xlsm"). Werkbladen ("sheet1"). Bereik ("B1") 'KnippenApplication.CutCopyMode = FalseEinde sub |
Waarde Plakken
Normaal gesproken, wanneer u kopieert en plakt, plakt u alle eigenschappen van een cel: opmaak, formules, enz … Met Waardeplakken kunt u de waarden van cellen kopiëren en plakken en niets anders. De eenvoudigste manier om Value Paste in VBA te plakken, is door de waarde van de cel rechtstreeks te definiëren:
123456789101112131415 | SubwaardePlakken()'Waarde plakken cellen'Bereik ("B1").waarde = Bereik ("A1").waardeBereik ("B1:B3").waarde = Bereik ("A1:A3").waarde'Waarden instellen tussen werkbladen'Worksheets("sheet2").range("A1").value = Worksheets("sheet1").range("A1").value'Waarden instellen tussen werkmappen'Werkmappen("book2.xlsm").Werkbladen("sheet1").range("A1").value = _Werkmappen("book1.xlsm").Werkbladen("sheet1").range("A1").valueApplication.CutCopyMode = FalseEinde sub |
Plakken speciaal
Met Plakken speciaal kunt u specifieke eigenschappen van cellen kopiëren en plakken (voorbeelden: opmaak, waarden, kolombreedtes, enz.). U kunt er ook speciale plakbewerkingen mee uitvoeren (voorbeelden: spaties overslaan, transponeren). We zullen hieronder verschillende voorbeelden bekijken, maar voor een diepgaande lees onze tutorial over Value Pasting en Paste Special.
12345678910111213141516171819 | Sub Plakken Speciaal()'Voer een speciale plakbewerking uit:Bereik ("A1"). Kopiëren'Indelingen plakken'Bereik ("B1").Plakken Speciaal Plakken:=xlPasteFormats'Kolombreedtes plakken'Bereik ("B1").Plakken Speciaal Plakken:=xlPlakkenColumnWidths'Plak formules'Range("B1").Plakken Speciaal Plakken:=xlPlakkenFormules'Voer meerdere speciale plakbewerkingen tegelijk uit:Bereik ("A1"). Kopiëren'Opmaak plakken en transponeren'Range("B1").PlakkenSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:= _False, Transponeren:=TrueApplication.CutCopyMode = FalseEinde sub |
Klembord wissen
Na het kopiëren en plakken wil je misschien het klembord wissen (in sommige van de bovenstaande codevoorbeelden doen we dat). Om het Excel-klembord te wissen, stellen we Application.CutCopyMode in op False:
1 | Application.CutCopyMode = False |
Hiermee wordt het klembord van Excel gewist. Het zal het Windows Klembord echter niet wissen. Volg de instructies hier om het klembord van het venster te wissen.