Tăiați, copiați și lipiți dintr-o macro - Exemple de cod VBA

În acest tutorial, veți învăța mai multe metode diferite de copiere și lipire și tăiere și lipire utilizând o macro VBA. Citiți tutorialul însoțitor despre Value Pasting and PasteSpecial pentru opțiuni mai avansate de copiere și lipire.

Pentru a utiliza acest cod: Deschideți Editorul Visual Basic (Alt + F11), Introduceți un nou modul (Insert> Module) și copiați și lipiți codul dorit în modul.

Copiați (tăiați) și lipiți o singură celulă

Acest exemplu copiază sau tăie și lipeste o singură celulă, A1 peste B1:

123456789 Sub Paste_OneCell ()„Copiați și lipiți o singură celulăGama ("A1"). Gama de copiere ("B1")'Tăiați și lipiți o singură celulăGama ("A1"). Gama de tăiere ("B1")Sfârșitul Sub

Copiați selecția

Dacă doriți să copiați selecția activă, utilizați acest lucru:

123456789101112 Sub CopySelection ()'Lipiți într-un interval definitSelection.copy range ("b1")'Offset Paste (compensează 2 celule în jos și 1 în dreaptaSelecție.copieSelection.offset (2,1) .pasteApplication.CutCopyMode = FalsSfârșitul Sub

Copiați (tăiați) și lipiți o gamă de celule

Acest exemplu copiază sau tăie și lipeste o gamă de celule, A1: A3 peste B1: B3:

123456789 Sub Paste_Range ()'Copiați și lipiți o gamă de celuleGama ("A1: A3"). Gama de copiere ("B1: B3")„Tăiați și lipiți o gamă de celuleGama ("A1: A3"). Gama de tăiere ("B1: B3")Sfârșitul Sub

Copiați (tăiați) și lipiți o întreagă coloană

Mai jos vom demonstra câteva exemple rapide. Citiți articolul nostru despre Copierea și lipirea rândurilor și coloanelor pentru exemple detaliate, explicații și variante.

Acest exemplu copiază sau decupează și lipeste o întreagă coloană, A peste B:

12345678910 Sub PasteOneColumn ()'Copiați și lipiți coloanaGama ("A: A"). Gama de copiere ("B: B")'Tăiați și lipiți coloanaGama ("A: A"). Gama de tăiere ("B: B")Sfârșitul Sub

Copiați (tăiați) și lipiți un rând întreg

Acest exemplu copiază sau tăie și lipeste un rând întreg, de la 1 la 2:

12345678910 Sub Paste_OneRow ()„Copiați și lipiți rândulGama („1: 1”). Gama de copiere („2: 2”)„Tăiați și lipiți rândulInterval ("1: 1"). Interval de tăiere ("2: 2")Sfârșitul Sub

Copiați (tăiați) și lipiți într-o altă foaie de lucru sau registru de lucru

1234567891011121314 Sub Paste_Other_Sheet_or_Book ()'Tăiați sau copiați și lipiți într-o altă foaie de lucruFoi de lucru ("foaia1"). Interval ("A1"). Copiați foile de lucru ("foaia2"). Interval ("B1") 'CopiațiFoi de lucru („foaia1”). Gama („A1”). Tăiați foile de lucru („foaia2"). Gama („B1") 'Tăiați'Tăiați sau copiați și lipiți într-un alt registru de lucruCărți de lucru ("book1.xlsm"). Foi de lucru ("sheet1"). Range ("A1"). Copiați _Cărți de lucru ("book2.xlsm"). Foi de lucru ("sheet1"). Range ("B1") 'CopiereCărți de lucru („book1.xlsm”). Foi de lucru („sheet1”). Range („A1”). Cut _Cărți de lucru ("book2.xlsm"). Foi de lucru ("sheet1"). Range ("B1") 'CutApplication.CutCopyMode = FalsSfârșitul Sub

Valoare Lipire

În mod normal, atunci când copiați și lipiți, lipiți toate proprietățile unei celule: formatare, formule, etc … Value Pasting vă permite să copiați și să lipiți valorile celulelor și nimic altceva. Cel mai simplu mod de a lipi valoarea în VBA este de a defini direct valoarea celulei:

123456789101112131415 Sub ValuePaste ()„Valorați lipirea celulelorRange ("B1"). Valoare = Range ("A1"). ValoareRange ("B1: B3"). Valoare = Range ("A1: A3"). Valoare„Setați valori între foile de lucruFoi de lucru ("foaia2"). Interval ("A1"). Valoare = Foi de lucru ("foaie1"). Interval ("A1"). Valoare„Setați valori între registre de lucruCărți de lucru ("book2.xlsm"). Foi de lucru ("sheet1"). Range ("A1"). Value = _Cărți de lucru ("book1.xlsm"). Foi de lucru ("sheet1"). Interval ("A1"). ValoareApplication.CutCopyMode = FalsSfârșitul Sub

Lipiți special

Lipire specială vă permite să copiați și să lipiți proprietăți specifice celulelor (exemple: formate, valori, lățimi ale coloanelor etc.). De asemenea, vă permite să efectuați operațiuni speciale de lipire (exemple: săriți spațiile goale, transpuneți). Vom analiza mai multe exemple mai jos, dar pentru un detaliu, citiți tutorialul nostru despre Valoare și lipire specială.

12345678910111213141516171819 Sub PasteSpecial ()„Efectuați o operație specială de lipire:Gama („A1”). Copiați„Lipiți formateRange ("B1"). PasteSpecial Paste: = xlPasteFormats„Lipiți lățimile coloaneiGama ("B1"). PasteSpecial Paste: = xlPasteColumnWidths„Lipiți formuleRange ("B1"). PasteSpecial Paste: = xlPasteFormulas„Efectuați operații speciale de lipire multiplă simultan:Gama („A1”). Copiați„Lipiți formate și transpunețiRange ("B1"). PasteSpecial Paste: = xlPasteFormats, Operațiune: = xlNone, SkipBlanks: = _Fals, transpune: = AdevăratApplication.CutCopyMode = FalsSfârșitul Sub

Ștergeți Clipboard

După copiere și lipire, poate doriți să ștergeți clipboard-ul (o facem în unele dintre exemplele de cod de mai sus). Pentru a șterge clipboard-ul Excel, setăm Application.CutCopyMode la False:

1 Application.CutCopyMode = Fals

Aceasta va șterge clipboard-ul Excel. Cu toate acestea, nu va șterge Clipboard-ul Windows. Pentru a șterge clipboard-ul ferestrei, urmați instrucțiunile de aici.

wave wave wave wave wave