Cookie-urile ne ajuta sa oferim serviciile noastre. Prin utilizarea serviciilor noastre, sunteți de acord cu utilizarea de cookie-uri.
Sfat: alte limbi sunt traduse de Google. Puteți vizita English versiune a acestei legături.
Contul meu
x
or
x
x
Inregistreaza-te
x

or

Cum de a duplica rânduri bazate pe valoarea celulei într-o coloană?

De exemplu, am o serie de date care conține o listă de numere din coloana D și acum vreau să repet întregii rânduri de mai multe ori pe baza valorilor numerice din coloana D pentru a obține următorul rezultat. Cum aș putea copia rândurile de mai multe ori pe baza valorilor celulei din Excel?

doc duplicate rânduri de către celula 1

Duplicați rânduri de mai multe ori pe baza valorilor celulelor cu codul VBA


săgeată albastru dreapta bule Duplicați rânduri de mai multe ori pe baza valorilor celulelor cu codul VBA

Pentru a copia și duplica întreaga serie de mai multe rânduri pe baza valorilor celulei, vă poate ajuta codul VBA de mai jos, vă rugăm să faceți acest lucru:

1. Țineți apăsată tasta ALT + F11 pentru a deschide tasta Microsoft Visual Basic pentru aplicații fereastră.

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

Codul VBA: rânduri duplicate de mai multe ori pe baza valorii celulei:

Sub CopyData()
'Updateby Extendoffice 20160922
    Dim xRow As Long
    Dim VInSertNum As Variant
    xRow = 1
    Application.ScreenUpdating = False
    Do While (Cells(xRow, "A") <> "")
        VInSertNum = Cells(xRow, "D")
        If ((VInSertNum > 1) And IsNumeric(VInSertNum)) Then
           Range(Cells(xRow, "A"), Cells(xRow, "D")).Copy
           Range(Cells(xRow + 1, "A"), Cells(xRow + VInSertNum - 1, "D")).Select
           Selection.Insert Shift:=xlDown
           xRow = xRow + VInSertNum - 1
        End If
        xRow = xRow + 1
    Loop
    Application.ScreenUpdating = False
End Sub

3. Apoi apăsați F5 pentru a rula acest cod, întregii rânduri au fost duplicate de mai multe ori pe baza valorii celulei din coloana D, după cum doriți.

notițe: În codul de mai sus, litera A indică coloana de pornire a intervalului de date și litera D este litera de coloană pe care doriți să duplicați rândurile bazate pe. Vă rugăm să le schimbați la nevoile dvs.



Instrumente de productivitate recomandate

Tab-ul Office

aur star1 Aduceți file la îndemână Excel și alte programe Office, la fel ca Chrome, Firefox și noul Internet Explorer.

Kutools pentru Excel

aur star1 Uimitor! Sporiți productivitatea în minute 5. Nu aveți nevoie de abilități speciale, cu excepția a două ore în fiecare zi!

aur star1 300 Caracteristici noi pentru Excel, Make Excel mult mai ușor și mai puternic:

  • Mergeți celule / rânduri / coloane fără a pierde date.
  • Combină și consolidează mai multe coli și foi de lucru.
  • Comparați intervale, copiați mai multe intervale, convertiți textul în data, conversia unității și monedelor.
  • Numărați după culori, subtotalări pentru pagini, sortare avansată și filtru super,
  • Mai mult Selectați / Inserați / Ștergeți / Text / Format / Link / Comment / Workbooks / Foi de lucru Instrumente ...

Ecranul lui Kutools pentru Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    KAS · 1 months ago
    Is there a way to update the module to only duplicate new data? I'm working on an ongoing document and do not want the code to duplicate data that has been previously duplicated.
  • To post as a guest, your comment is unpublished.
    Gerardo Enrique Heras Araujo · 2 months ago
    hi, for me is no working, I want to remove letters and number duplicate is possible?
  • To post as a guest, your comment is unpublished.
    Naomi · 2 months ago
    This script seems to be exactly what I need, however, when I run it I am getting an error on the line Selection.Insert Shift:=x1Down

    Any suggestions on how I fix this?
  • To post as a guest, your comment is unpublished.
    Manuel F · 2 months ago
    Thanks! it has been a great solution for all my troubles!
  • To post as a guest, your comment is unpublished.
    Leah · 3 months ago
    Hello, this worked great. However, I have a report with 1000 entries and the code stopped duplicating around entry 480. Is there something that I can add so that it completes the action on the entire report?
    • To post as a guest, your comment is unpublished.
      skyyang · 3 months ago
      Hello, Leah,
      I have tested the code in 2000 rows, and it works well.
      Could you send your worksheet to me for testing the code?
      My email address is skyyang@extendoffice.com
      Look forward to your reply!
      • To post as a guest, your comment is unpublished.
        Leah · 3 months ago
        Hello! I got it to work. It was an error on my side, the report had a few blank rows that were hidden that were causing the script to stop looping. It worked for my report with 8,000 rows! Thank youQ