Î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.