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

Cum să copiați și să inserați rândul de mai multe ori sau să copiați rândul de x ori în Excel?

În munca dvs. zilnică, ați încercat vreodată să copiați un rând sau fiecare rând și apoi să inserați de mai multe ori sub rândul de date curent într-o foaie de lucru? De exemplu, am o gamă de celule, acum vreau să copiez fiecare rând și să le lipesc de 3 ori pe rândul următor, după cum se arată în următoarea captură de ecran. Cum ați putea face față acestui job în Excel?


Copiați și inserați un rând specific de mai multe ori cu codul VBA

Dacă doriți să copiați doar un rând specific de x ori, următorul cod VBA vă poate ajuta, vă rugăm să faceți acest lucru:

1. Specificați un rând pe care doriți să îl copiați și să îl inserați de mai multe ori, apoi țineți apăsat butonul ALT + F11 , apoi deschide fișierul Microsoft Visual Basic pentru aplicații fereastră.

2. Clic Insera > Moduleși lipiți următorul cod în Module Fereastră.

Cod VBA: Duplicați un rând specific de mai multe ori:

Sub test()
'Updateby Extendoffice
    Dim xCount As Integer
LableNumber:
    xCount = Application.InputBox("Number of Rows", "Kutools for Excel", , , , , , 1)
    If xCount < 1 Then
        MsgBox "the entered number of rows is error, please enter again", vbInformation, "Kutools for Excel"
        GoTo LableNumber
    End If
    ActiveCell.EntireRow.Copy
    Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(xCount, 0)).EntireRow.Insert Shift:=xlDown
    Application.CutCopyMode = False
End Sub

3. După lipirea codului, vă rugăm să apăsați F5 pentru a rula acest cod și apare o casetă de prompt pentru a vă reaminti să introduceți de câte ori doriți să copiați, vedeți captura de ecran:

4. Apoi apasa OK și au fost inserate trei rânduri noi copiate sub rândul selectat, consultați captura de ecran:


Copiați și inserați fiecare rând de mai multe ori pe baza unui anumit număr cu ușurință

În mod normal, nu există o metodă bună pentru copierea și inserarea rândurilor de mai multe ori, cu excepția faptului că se tratează copierea și inserarea manuală. Dar cu Kutools pentru Excel's Duplicați rânduri / coloane pe baza valorii celulei caracteristică, puteți rezolva această problemă cu ușurință. Faceți clic pentru a descărca Kutools pentru Excel!

Kutools pentru Excel: cu mai mult de 300 de programe de completare Excel la îndemână, încercați fără limitări în 60 de zile. Descărcați și proba gratuită acum!


Copiați și inserați fiecare rând de mai multe ori cu codul VBA

Pentru a duplica fiecare rând de mai multe ori într-un interval, puteți aplica următorul cod VBA, vă rugăm să procedați după cum urmează:

1. Țineți apăsat butonul ALT + F11 , apoi deschide fișierul Microsoft Visual Basic pentru aplicații fereastră.

2. Clic Insera > Moduleși lipiți următorul cod în Module Fereastră.

Cod VBA: Duplicați fiecare rând de mai multe ori:

Sub insertrows()
'Updateby Extendoffice
Dim I As Long
Dim xCount As Integer
LableNumber:
xCount = Application.InputBox("Number of Rows", "Kutools for Excel", , , , , , 1)
If xCount < 1 Then
MsgBox "the entered number of rows is error ,please enter again", vbInformation, "Kutools for Excel"
GoTo LableNumber
End If
For I = Range("A" & Rows.CountLarge).End(xlUp).Row To 2 Step -1
Rows(I).Copy
Rows(I).Resize(xCount).Insert
Next
Application.CutCopyMode = False
End Sub

3. Și apoi apăsați F5 pentru a rula acest cod și apare o casetă de prompt pentru a vă reaminti să introduceți de câte ori doriți să copiați pentru fiecare înregistrare, vedeți captura de ecran:

4. Apoi apasa OKși fiecare rând a fost copiat și inserat de 3 ori sub cele active, vezi captura de ecran:

notițe: În codul de mai sus, A indică faptul că intervalul de date este pornit de la coloana A, dacă datele dvs. încep de la coloana K, te rog schimba A la K ca nevoia ta.


Copiați și inserați fiecare rând de mai multe ori pe baza unui anumit număr cu o caracteristică minunată

Poate că nu sunteți familiarizați cu codul VBA sau vă faceți griji că codul vă va bloca datele. Aici, voi introduce o caracteristică utilă, Kutools pentru Excel's Duplicați rânduri / coloane pe baza valorii celulei, cu acest utilitar, puteți copia și insera rapid rândurile pe baza numărului specificat.

Sfat:Pentru a aplica acest lucru Duplicați rânduri / coloane pe baza valorii celulei caracteristică, în primul rând, ar trebui să descărcați Kutools pentru Excel, apoi aplicați caracteristica rapid și ușor.

După instalare Kutools pentru Excel, vă rugăm să faceți acest lucru:

1. Introduceți numerele repetate pe care doriți să le copiați rânduri într-o listă de celule de lângă datele dvs., consultați captura de ecran:

2. Clic Kutools > Insera > Duplicați rânduri / coloane pe baza valorii celulei, vezi captura de ecran:

3. În Copiați și inserați rânduri și coloane fereastră de dialog, selectați Copiați și inserați rânduri opțiune în Tip secțiune, apoi selectați intervalul de date pe care doriți să îl copiați, apoi specificați timpul de repetare pentru duplicarea rândurilor, consultați captura de ecran:

4. Apoi apasa Ok or Aplică , veți obține următorul rezultat după cum aveți nevoie:

Faceți clic pentru a descărca Kutools pentru Excel și încercare gratuită acum!


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 (32)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Macro grozavă - Mi-a economisit atât de mult timp!
Acest comentariu a fost redus la minimum de moderatorul de pe site
foarte frumos macro prietene!
Acest comentariu a fost redus la minimum de moderatorul de pe site
vreau să generez rânduri duplicat aleatoriu,

pentru ex. generați rânduri duplicat aleatoriu între 20 și 80.


care va fi codul actualizat pentru următoarele


Sub insertrows()
'Actualizare de Extendoffice 2016616
Dim I As Long
Dim xCount As Integer
LableNumber:
xCount = Application.InputBox(„Număr de rânduri”, „Kutools pentru Excel”, , , , , , 1)
Dacă xCount < 1 Atunci
MsgBox „numărul de rânduri introdus este o eroare, vă rugăm să introduceți din nou”, vbInformation, „Kutools pentru Excel”
Accesați LableNumber
Final, dacă
Pentru I = Range("A" & Rows.CountLarge).End(xlUp).Row To 1 Step -1
Rânduri(I).Copie
Rânduri(I).Redimensionare(xCount).Inserare
Pagina Următoare →
Application.CutCopyMode = Fals
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vreau să dublez rânduri pe baza unui parametru. De exemplu, am o coloană numită durata întâlnirii. Dacă acea coloană este mai mare de 1, vreau să dublez rândurile cu ID-ul întâlnirii pe baza acelui număr. Dacă durata întâlnirii este de 2 ore, atunci duplicați meetingID de două ori. Dacă întâlnirea durează 3 ore, dublați de trei ori.
Creșterile de jumătate de oră pot fi rotunjite la oră.

MeetingID Ora de început Ora de sfârșit Durata întâlnirii
43117 9:00 AM 11:00 AM 02:00
43580 9:30 AM 11:00 AM 01:30
42699 10:00 11:30 01:30
12345 01:00 2:00 01:00
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am aceeasi problema. Ai gasit o solutie?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut baieti,
Este posibil ca următorul cod VBA să vă facă o favoare, vă rugăm să-l aplicați:
Sub insertrows()
Dim I As Long
Dim xRg As Range
Dim xHour, xMin As Long
La data de eroare CV următoare
Application.ScreenUpdating = Fals
Pentru I = Range("D" & Rows.CountLarge).End(xlUp).Row To 1 Step -1
xOră = 0
Set xRg = Range(„D” și I)
xOră = Ora (xRg.Value) + 1
xMin = Minut(xRg.Value)
Dacă xMin < 30, atunci xOră = xOră - 1
Rânduri(I).Copie
Rânduri(I).Redimensionare(xOră).Inserare
Pagina Următoare →
Application.ScreenUpdating = Adevărat
Application.CutCopyMode = Fals
End Sub

Vă rugăm să încercați. Sper că vă poate ajuta!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am folosit aceste macrocomenzi în trecut și a funcționat întotdeauna până de curând. Aveți vreo perspectivă de ce ar duplica doar rândul de sus, chiar și atunci când utilizați macrocomenzile cu mai multe rânduri? Am eliminat toate filtrele/panourile înghețate.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, cum pot schimba codul pentru a include următoarele

1. duplicat în funcție de numărul de zile
2. modificați coloana EOM de la sfârșitul lunii la data zilnică
Acest comentariu a fost redus la minimum de moderatorul de pe site
Va multumesc sincer pentru sustinere!!!!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Iubește codul! cum pot seta intervalul de început pentru a sări peste primul rând (anteturi de coloană) și pentru a începe pe rândul 2?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Devin,
Pentru a sări peste primul rând de antet, aplicați următorul cod VBA:

Sub insertrows()
Dim I As Long
Dim xCount As Integer
LableNumber:
xCount = Application.InputBox(„Număr de rânduri”, „Kutools pentru Excel”, , , , , , 1)
Dacă xCount < 1 Atunci
MsgBox „numărul de rânduri introdus este o eroare, vă rugăm să introduceți din nou”, vbInformation, „Kutools pentru Excel”
Accesați LableNumber
Final, dacă
Pentru I = Range("A" & Rows.CountLarge).End(xlUp).Row To 2 Step -1
Rânduri(I).Copie
Rânduri(I).Redimensionare(xCount).Inserare
Pagina Următoare →
Application.CutCopyMode = Fals
End Sub

Vă rugăm să încercați, sper că vă poate ajuta!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, am nevoie de ajutor, așa arată tabelul meu, de exemplu, când adaug 2 rânduri la sfârșitul primului meu tabel, vreau ca vba să mă ajute să fac același lucru pentru tabelul de mai jos (adăugați 1 rânduri la sfârşitul mesei). Deci, treaba mea va fi, trebuie doar să adaug rânduri la primul tabel, tabelul de jos va genera automat rânduri pe baza numerelor de rând din primul tabel. acestea sunt codurile pe care le-am folosit acum pentru a adăuga un rând pentru primul tabel. Sper că cineva poate rezolva această problemă pentru mine, thx.Sub InsertNumRows()

ActiveCell.EntireRow.Copy

Dim Rng As Long

Application.DisplayAlerts = Fals
La data de eroare CV următoare
Rng = InputBox ("Introduceți numărul de rânduri necesare.")
La eroare GoTo 0
Application.DisplayAlerts = Adevărat

Dacă Rng = 0 Atunci
MsgBox „Nu ați specificat un interval!”
Ieșiți din Sub

Altfel
Interval(ActiveCell.Offset(1, 0), ActiveCell.Offset(Rng, 0)).Selectați
Selection.EntireRow.Insert Shift:=xlDown
Final, dacă

End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Iubesc! Funcționează de fiecare dată! Multumesc mult pentru asta :)
Acest comentariu a fost redus la minimum de moderatorul de pe site
cum fac asta pentru coloane?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum pot face asta pentru coloane?
Acest comentariu a fost redus la minimum de moderatorul de pe site
cum să efectuați aceeași acțiune cu celulele selectate folosind VB,


Trebuie să repet câteva celule selectate (rânduri și coloane) x de ori în aceeași foaie și în aceeași ordine ca:

line1
line2
line3

line1
line2
line3
Acest comentariu a fost redus la minimum de moderatorul de pe site
salut, acest lucru a funcționat grozav, doar că am nevoie de două rânduri copiate de N de ori. Puteți ajusta codul, astfel încât atunci când selectez două rânduri, apoi va copia acele două rânduri în jos de N ori? Vă mulțumim pentru ajutor
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Sal,
Dacă trebuie să copiați doar două rânduri în jos de mai multe ori, trebuie doar să utilizați codul VBA 1 în acest articol, aplicați codul de două ori vă va rezolva problema. Vă rugăm să încercați, sper că vă poate ajuta!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Copiați și inserați fiecare rând de mai multe ori cu codul VBA

În codul VBA, cum pot selecta rândul de început
Acest comentariu a fost redus la minimum de moderatorul de pe site
Nu funcționează cu Windows 2019, doresc să utilizeze funcția în mențiune, dar pur și simplu nu face absolut nimic
Acest comentariu a fost redus la minimum de moderatorul de pe site
salut tuturor.. Va multumesc anticipat pentru ajutor!!

Codul VBA pentru a duplica un anumit rând de mai multe ori funcționează perfect până când utilizați un filtru. Mă întreb dacă cineva mă poate ajuta să rezolv această problemă. Am nevoie de un cod care să funcționeze chiar dacă aveți unele valori filtrate. Folosesc o cantitate mare de date care sunt sortate după locații. Codul funcționează parțial, lipește numărul de rând dorit, dar fără date sau format atunci când am aplicat un filtru.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, este posibil să folosiți diferite dimensiuni (valori) pentru fiecare rând? Încerc să folosesc vector, dar nu funcționează.
De exemplu :
Rânduri(I).Resize(xCount(y) ).Insert

Unde valorile salvate în xCount(y) sunt citite dintr-un tabel.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Guss,
Poate că articolul de mai jos vă poate ajuta, vă rugăm să îl verificați:
https://www.extendoffice.com/documents/excel/4054-excel-duplicate-rows-based-on-cell-value.html
Acest comentariu a fost redus la minimum de moderatorul de pe site
Pentru al doilea cod VBA (cod VBA: Duplicați fiecare rând de mai multe ori) continui să primesc ca eroare de timp de rulare: 1004
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