Pliki cookie pomagają nam dostarczać nasze usługi. Korzystając z naszych usług, zgadzasz się na nasze pomocą plików cookie.
Wskazówka: inne języki są tłumaczone przez Google. Możesz odwiedzić English wersja tego linku.
Zaloguj Się
x
or
x
x
Zarejestruj
x

or

Jak duplikować wiersze na podstawie wartości komórki w kolumnie?

Na przykład mam zakres danych, który zawiera listę liczb w kolumnie D, a teraz chcę zduplikować całe wiersze kilka razy w oparciu o wartości liczbowe w kolumnie D, aby uzyskać następujący wynik. Jak mogę skopiować wiersze wiele razy w oparciu o wartości komórek w programie Excel?

doc duplikuj wiersze według komórki 1

Powiel wielokrotnie wiersze w oparciu o wartości komórek z kodem VBA


strzałka niebieska prawa bańka Powiel wielokrotnie wiersze w oparciu o wartości komórek z kodem VBA

Aby skopiować i powielić całe wiersze wiele razy w oparciu o wartości komórek, może Ci pomóc poniższy kod VBA, wykonaj następujące czynności:

1. Przytrzymaj przycisk ALT + F11 klawisze, aby otworzyć Microsoft Visual Basic for Applications okno.

2, Kliknij wstawka > Modułi wklej następujący kod w Moduł Okno.

Kod VBA: Powiel wielokrotnie wiersze na podstawie wartości komórki:

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. Następnie naciśnij F5 Klucz do uruchomienia tego kodu, całe wiersze zostały powielone wiele razy w zależności od wartości komórki w kolumnie D, zgodnie z potrzebą.

Uwagi: W powyższym kodzie, litera A wskazuje kolumnę początkową zakresu danych i literę D jest literą kolumny, na którą chcesz zduplikować wiersze. Zmień je według swoich potrzeb.



Zalecane narzędzia zwiększające wydajność

Karta Office

złota star1 Przynieś poręczne zakładki do Excela i innego oprogramowania Office, tak jak Chrome, Firefox i nowy Internet Explorer.

Kutools dla programu Excel

złota star1 Niesamowity! Zwiększ swoją produktywność za 5 minut. Nie potrzebujesz żadnych specjalnych umiejętności, oszczędzając dwie godziny dziennie!

złota star1 300 Nowe funkcje programu Excel, uczynienie z Excela bardzo prostym i wydajnym:

  • Scal komórki / wiersze / kolumny bez utraty danych.
  • Łącz i konsoliduj wiele arkuszy i zeszytów.
  • Porównaj zakresy, skopiuj wiele zakresów, przelicz tekst na datę, jednostkę i walutę.
  • Zliczaj według kolorów, podstrony stronicowania, sortowanie zaawansowane i super filtry,
  • Więcej Wybierz / Wstaw / Usuń / Tekst / Format / Link / Komentarz / Skoroszyty / Arkusze zadań Narzędzia ...

Zrzut ekranu z Kutools dla Excela

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