Note: The other languages of the website are Google-translated. Back to English

Cum se creează un buton de comandă pentru a copia și lipi date în Excel?

Presupunând că trebuie să copiați frecvent o gamă de celule în alt loc după schimbarea datelor, metoda de copiere și lipire manuală va fi dificilă și durează. Cum se face ca această copiere și inserare să ruleze automat? Acest articol vă va arăta cum să utilizați un buton de comandă pentru a copia și lipi date cu un singur clic.

Creați un buton de comandă pentru a copia și lipi datele cu codul VBA


Creați un buton de comandă pentru a copia și lipi datele cu codul VBA

Procedați după cum urmează pentru a copia și lipi automat datele când faceți clic pe un buton de comandă.

1. Introduceți un buton de comandă făcând clic Dezvoltator > Insera > Buton de comandă (control ActiveX). Vedeți captura de ecran:

2. Desenați un buton de comandă în foaia de lucru și faceți clic dreapta pe el. Selectați Afișați codul din meniul contextual.

3. În fereastra pop-up Microsoft Visual Basic pentru aplicații fereastră, înlocuiți codul original din fereastra Cod cu codul VBA de mai jos.

Cod VBA: utilizați butonul de comandă pentru a copia și lipi date în Excel

Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False
    Dim xSheet As Worksheet
    Set xSheet = ActiveSheet
        If xSheet.Name <> "Definitions" And xSheet.Name <> "fx" And xSheet.Name <> "Needs" Then
            xSheet.Range("A1:C17 ").Copy
            xSheet.Range("J1:L17").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        End If

    Application.ScreenUpdating = True
End Sub

notițe: În cod, CommandButton1 este numele butonului de comandă inserat. A1: C17 este intervalul pe care trebuie să îl copiați, iar J1: L17 este intervalul de destinație pentru a lipi date. Vă rugăm să le schimbați după cum aveți nevoie.

4. presa Alt + Q tastele pentru a închide Microsoft Visual Basic pentru aplicații fereastră. Și dezactivați Modul de proiectare din fila Dezvoltator.

5. Acum faceți clic pe butonul de comandă, toate datele din intervalul A1: C17 vor fi copiate și lipite în intervalul J1: L17 fără formatarea celulei.


Articole pe aceeași temă:


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (60)
Evaluat 4.5 din 5 · evaluări 1
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am folosit această funcție în registrul meu de lucru. Folosesc butoanele x active pentru a copia și lipi date în aceeași foaie pe mai multe foi. Cu toate acestea, există foi fără butoane x active sau macro-uri care primesc date lipite din câmpurile respective de pe foaie pe care nu le doresc. Ajutor?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Pot avea codul care va copia intervalul I4:L26 de la Sheet2 (numit TransferSheet) (butonul va fi pe această foaie) la Sheet1 (numit JobsToDo) pe rândul C (prima linie care este goală, deoarece aceasta va avea date adăugate în mod constant, vă rog
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum puteți modifica codul pentru a lipi rezultatele într-o altă pagină în registrul de lucru? și cum obțineți inserarea unui rând înainte de a introduce datele noi, astfel încât să nu le suprascrie
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hi Jason,
Dacă doriți să lipiți rezultatele în alte foi de lucru din registrul de lucru, încercați codul VBA de mai jos.

Sub CommandButton privat 1_Click()
Dim xSheet, xDWS As Worksheet
Dim xFNum ca număr întreg
Dim xSRg As Range

La data de eroare CV următoare
Set xSRg = Application.InputBox("Vă rugăm să selectați celula pentru a lipi intervalul:", "Kutools pentru Excel", xTxt, , , , , 8)
Dacă xSRg nu este nimic, ieșiți din sub

Application.ScreenUpdating = Fals
Interval ("A1:C17").Copiere
xSRg.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.ScreenUpdating = Adevărat

End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
cum este formula pentru a copia fișiere
apoi lipiți-l pe foaia următoare. și lipiți următorul faceți un spațiu sau continuați să mergeți în jos fără a șterge pasta anterioară.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua,
Codul VBA de mai jos vă poate ajuta să rezolvați problema. Vă rugăm să încercați. Mulțumesc.

Sub CommandButton privat 1_Click()
Dim xSheet, xDWS As Worksheet
Dim xFNum ca număr întreg
Dim xSRg As Range

La data de eroare CV următoare
Set xSRg = Application.InputBox("Vă rugăm să selectați celula pentru a lipi intervalul:", "Kutools pentru Excel", xTxt, , , , , 8)
Dacă xSRg nu este nimic, ieșiți din sub

Application.ScreenUpdating = Fals
Interval ("A1:C17").Copiere
xSRg.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.ScreenUpdating = Adevărat

End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Ce se întâmplă dacă aș vrea să fac o coadă de paste?
Pentru a explica mai departe. Dau clic pe CommandButton1, apoi copiez A1. Când am folosit paste, copia din A1 - Apoi vreau să copiez A2 fără să dau clic pe alt buton, astfel încât să pot lipi A2 imediat, în altă parte. Apoi, când am folosit paste, copia de pe A2 apoi copiază A3. Dacă este posibil? Poate funcționa și în fundal atunci când folosesc o foaie Excel normală și încerc să fac această acțiune în care copiez din Excel și apoi lipesc într-un program complet diferit, cum ar fi un browser de internet, alt program, word, fișier txt și așa mai departe ?

Acest articol a fost oricum extrem de util, mulțumesc frumos!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Magnus,
Îmi pare rău că nu te pot ajuta cu asta. Multumesc pentru comentariul tau.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Aș dori să extind acest singur pas... După ce am lipit valorile reale, nu formulele... Trebuie să copiez noua celulă și să inserez într-un alt program care nu este Excel, ar trebui pur și simplu să dau clic pe butonul Copiați formula dintr-un o anumită celulă și treceți valoarea reală într-o altă, apoi copiați acea nouă valoare în clipboard-ul Windows în trecut într-o altă aplicație. Sper că acest lucru are sens și apreciez ajutorul tău pentru a ști cum să adaugi noul cod... Știu ce vreau să facă, doar că nu sunt familiarizat cu cum să-l codific...
mulțumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună,
Codul a fost actualizat în articol, vă rugăm să încercați. Multumesc pentru comentariu.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Ar fi posibil ca butonul de comandă să lipească instantaneu intervalul selectat într-o foaie specificată (în următoarea celulă goală) în loc să fie nevoie să introducă de fiecare dată acolo unde doriți să lipiți datele?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hi Adam,
Codul VBA de mai jos vă poate ajuta să rezolvați problema.
Trebuie să înlocuiți „Sheet4” și „A1:C17” din cod cu foaia și intervalul specificat.

Sub CommandButton privat 1_Click()
Dim xSWName ca șir
Dim xSheet ca foaie de lucru
Dim xPSheet ca foaie de lucru
Dim xIntR ca întreg
xSWName = „Foaie4”
La data de eroare CV următoare
Application.ScreenUpdating = Fals
Setați xSheet = ActiveSheet
Dacă xSheet.Name <> „Definiții” și xSheet.Name <> „fx” și xSheet.Name <> „Necesită” atunci
xSheet.Range("A1:C17").Copy
Set xPSheet = Worksheets.Item(xSWName)
xIntR = xPSheet.UsedRange.Rows.count
xPSheet.Cells(xIntR + 1, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Final, dacă
Application.ScreenUpdating = Adevărat
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Foarte bine, trebuie să copiez și să inserez de multe ori. Este posibil să aleg să lipim un rând de date în 3 sau 5 rânduri, orice îmi place?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Îmi pare rău că nu te pot ajuta cu asta
Acest comentariu a fost redus la minimum de moderatorul de pe site
domnule, cum să copiați intervalul celulei din foaia de lucru curentă, apoi să lipiți în altă fișă de lucru?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună,
Codul VBA de mai jos vă poate ajuta să rezolvați problema.
Trebuie să înlocuiți „Sheet4” și „A1:C17” din cod cu foaia și intervalul specificat.

Sub CommandButton privat 1_Click()
Dim xSWName ca șir
Dim xSheet ca foaie de lucru
Dim xPSheet ca foaie de lucru
Dim xIntR ca întreg
xSWName = „Foaie4”
La data de eroare CV următoare
Application.ScreenUpdating = Fals
Setați xSheet = ActiveSheet
Dacă xSheet.Name <> „Definiții” și xSheet.Name <> „fx” și xSheet.Name <> „Necesită” atunci
xSheet.Range("A1:C17").Copy
Set xPSheet = Worksheets.Item(xSWName)
xIntR = xPSheet.UsedRange.Rows.count
xPSheet.Cells(xIntR + 1, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Final, dacă
Application.ScreenUpdating = Adevărat
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dacă vreau să copiez acest lucru nu în registrul de lucru curent, ci într-un alt registru de lucru (care încă nu este deschis) în Excel. Cum modific acest cod VBA în consecință?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut Robbert,
Îmi pare rău că nu te pot ajuta cu asta. Multumesc pentru comentariu.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am un qusrion Am foaia 1 cu o coloană cu data b3:b33 și vreau ca aceasta să fie copiată în foaia 2 B33:b63 textul acesteia, dar am nevoie de același format pentru text, adică dimensiunea culorii
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună autor,

Articolul pe care l-ați menționat mai sus îmi este de mare ajutor. Nu sunt obișnuit cu codul excel și comandă. Mai trebuie să știu mai degrabă decât acest articol. Sunt de acord cu copierea și inserarea în foaia următoare. Dar încă trebuie să știu „cum să lipesc și să adaug în linia nouă din foaia următoare de fiecare dată când apăs pe butonul”. În caz contrar, datele mele de pe foaia următoare vor fi înlocuite de fiecare dată. V-as fi foarte recunoscator si astept cu nerabdare raspunsul dumneavoastra.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Kyaw Ye Min,
Scuze că răspund atât de târziu. Urmați pașii și înlocuiți codul cu cel de mai jos. În cod, Sheet4 este foaia de lucru de destinație în care veți copia datele, vă rugăm să o schimbați și intervalul copiat A1:C17 după cum aveți nevoie. Multumesc pentru comentariul tau.

Sub CommandButton privat 1_Click()
Dim xSWName ca șir
Dim xSheet ca foaie de lucru
Dim xPSheet ca foaie de lucru
Dim xIntR ca întreg
xSWName = „Foaie4”
La data de eroare CV următoare
Application.ScreenUpdating = Fals
Setați xSheet = ActiveSheet
Dacă xSheet.Name <> „Definiții” și xSheet.Name <> „fx” și xSheet.Name <> „Necesită” atunci
xSheet.Range("A1:C17").Copy
Set xPSheet = Worksheets.Item(xSWName)
xIntR = xPSheet.UsedRange.Rows.Count
xPSheet.Cells(xIntR + 1, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Final, dacă
Application.ScreenUpdating = Adevărat
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Buna va rog ajutati. Am nevoie de același lucru ca mai sus, dar trebuie doar să lipesc orice este celula activă într-o linie nouă (dacă este posibil deasupra intrărilor anterioare) într-o foaie de lucru diferită. Apreciez cu adevărat orice ajutor în acest sens. Toate cele bune
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, ajută-mi cazul, vreau să am un buton pentru a genera o macrocomandă unde am Excel și a exporta datele din <" "> în cuvânt, mulțumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună,
Îmi pare rău că nu am înțeles punctul tău de vedere. Ar fi bine dacă ați putea explica cu mai multe detalii despre ceea ce încercați să faceți.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Caut ajutor cu privire la faptul că un utilizator poate face clic pe un număr de rând și apoi poate apăsa butonul de comandă pentru a face o copie a acelui rând și o va insera în rândul de sub el.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua,
Îmi pare rău, vă pot ajuta încă cu asta. Multumesc pentru comentariul tau.
Acest comentariu a fost redus la minimum de moderatorul de pe site
master bagaimana jika berbeda sheet dan copy data yg diinginkan
contoh sheet1 hanya data kolom B & kolom D copy ke sheet2
terimakasih
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vă rugăm să trimiteți codul VBA pentru a copia conținutul unei singure celule utilizând butonul de comandă faceți clic fără a utiliza caseta de text, astfel încât să puteți lipi în orice aplicație cum ar fi notepad, msword
Acest comentariu a fost redus la minimum de moderatorul de pe site
Este posibil să faci un buton care să copieze doar o celulă selectată de pe o foaie pe o altă foaie? Mulțumiri!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Buna Lexi,
Codul VBA de mai jos vă poate ajuta să rezolvați problema. Vă rugăm să schimbați „Sheet3” cu numele foii după cum aveți nevoie.
Selectați o celulă și apăsați butonul de comandă pentru a o face să funcționeze.

Sub CommandButton privat 1_Click()
Dim xSWName ca șir
Dim xSheet ca foaie de lucru
Dim xPSheet ca foaie de lucru
Dim xIntR ca întreg
xSWName = „Foaie3”
La data de eroare CV următoare
Application.ScreenUpdating = Fals
Setați xSheet = ActiveSheet
Dacă xSheet.Name <> „Definiții” și xSheet.Name <> „fx” și xSheet.Name <> „Necesită” atunci
Selection.CurrentRegion.Select
Selectare.Copiere
Set xPSheet = Worksheets.Item(xSWName)
xIntR = xPSheet.UsedRange.Rows.Count
xPSheet.Cells(xIntR + 1, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Final, dacă
Application.ScreenUpdating = Adevărat
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Buna ziua!
Există o modalitate de a face un cod, astfel încât să pot copia un interval cu un buton (să spunem A1:D5).
Și apoi lipiți-l în A6:D10.

Și dacă apăs încă o dată butonul, va copia A1:D5 în A11:D15.

Si asa mai departe?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Jonas,
Îmi pare rău că nu te pot ajuta pentru asta. Multumesc pentru comentariu.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Acest lucru este fabulos - m-am adaptat pentru foaia mea, dar am nevoie ca acesta să fie mai dinamic și să utilizeze etichete, mai degrabă decât să codifice locațiile celulelor.
Adică, în intervalul A2-A6, găsiți numele „Jamie” și apoi găsiți numele în coloana K2 și lipiți

De asemenea, am nevoie de fiecare clic pentru a +1 și de a rula aceeași copie și lipire, dar la următoarea coloană, adică

faceți clic pe 1 - lipiți în Q1, Faceți clic pe 2 - lipiți în Q2 etc

Exemplu:

Coloana A Coloana B ...... Coloana K Coloana L
1. Nume Ore lucrate Nume Q1 Q2 Q3 Q4
2. Jamie 22 Sammy
3. Sammy 40 Judith
4. Judith 18 Jamie
5. Tammy 16 Keith
6. Keith 42 Tammy


Orice ajutor ar fi foarte apreciat.
Acest comentariu a fost redus la minimum de moderatorul de pe site
cum se codifică pentru copierea celulei din intervalul a1 la a5 pentru a lipi în c1 și în următoarea celulă disponibilă secvenţial?
Acest comentariu a fost redus la minimum de moderatorul de pe site
și, de asemenea, copiați și lipiți celula pe rând..
Vă mulțumesc pentru ajutor!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut baieti. asta are nevoie de ajutor, te rog. Trebuie să creez un buton de 10* în foaia mea de lucru (Sheet1) care va copia 3 celule, Exemplu: Sheet1, A1, B1, C1. apoi lipiți-l în Sheet2 A1, B1, C1. atunci dacă dau clic pe butonul 4, de exemplu: Sheet1, A4, B4, C4, am nevoie să trec în Sheet2, A2, B2, C2. Dacă dau clic pe butonul 2, atunci trebuie să treacă în Sheet2, A3, B3, C3. Sper că acest lucru are sens.
Nu există comentarii postate aici încă
Încărcați mai
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL