Cookies hjälper oss att leverera våra tjänster. Genom att använda våra tjänster samtycker du till vår användning av cookies.
Tips: Andra språk är Google-översatta. Du kan besöka English version av den här länken.
Logga in
x
or
x
x
Registrera
x

or

Hur kopieras rader baserat på cellvärde i en kolumn?

Till exempel har jag en rad data som innehåller en lista med siffror i kolumn D, och nu vill jag duplicera hela raden ett antal gånger baserat på de numeriska värdena i kolumn D för att få följande resultat. Hur kunde jag kopiera raderna flera gånger baserat på cellvärdena i Excel?

doc dubbla rader av cell 1

Kopiera rader flera gånger baserat på cellvärden med VBA-kod


pilblå höger bubbla Kopiera rader flera gånger baserat på cellvärden med VBA-kod

För att kopiera och duplicera hela raden flera gånger baserat på cellvärdena kan följande VBA-kod hjälpa dig, gör så här:

1. Håll ner ALT + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.

2. Klicka Infoga > Modulerna, och klistra in följande kod i Modulerna Fönster.

VBA-kod: Kopiera rader flera gånger baserat på cellvärde:

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. Tryck sedan på F5 nyckeln för att köra den här koden har hela raderna duplicerats flera gånger baserat på cellvärdet i kolumn D som du behöver.

Anmärkningar: I ovanstående kod, bokstaven A anger startkolumnen i ditt dataintervall och bokstaven D är kolumnbrevet som du vill duplicera raderna baserade på. Ändra dem till ditt behov.



Rekommenderade produktivitetsverktyg

Fliken Office

guld star1 Hämta praktiska flikar till Excel och annan Office-programvara, precis som Chrome, Firefox och ny Internet Explorer.

Kutools för Excel

guld star1 Fantastiskt! Öka din produktivitet i 5 minuter. Behöver inte några speciella färdigheter, spara två timmar varje dag!

guld star1 300 Nya funktioner för Excel, gör Excel mycket enkelt och kraftfullt:

  • Sammanfoga cell / rader / kolumner utan att förlora data.
  • Kombinera och konsolidera flera ark och arbetsböcker.
  • Jämför rader, kopiera flera rader, konvertera text till datum, enhet och valutaomvandling.
  • Räkna med färger, personsökande subtotaler, avancerad sortering och superfilter,
  • Mer Välj / Infoga / Radera / Text / Format / Länk / Kommentar / Arbetsböcker / Arbetsblad Verktyg ...

Skärmdump av Kutools för 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