Slapukai padeda mums pristatyti mūsų paslaugomis. Naudodamiesi mūsų paslaugomis, jūs sutinkate su mūsų slapukų naudojimą.
Patarimas: kitos kalbos yra "Google" išverstos. Galite aplankyti English šios nuorodos versija.
Prisijungti
x
or
x
x
Registruotis
x

or

Kaip nukopijuoti eilutes pagal ląstelių vertę stulpelyje?

Pavyzdžiui, aš turiu duomenų diapazoną, kuriame yra D skilties numerių sąrašas, o dabar noriu pakartoti visas eilutes daugybe, remiantis stulpelyje D esančiomis skaitinėmis vertėmis, kad gautumėte šį rezultatą. Kaip galėčiau nukopijuoti eilutes kelis kartus pagal "Excel" ląstelių vertes?

Doc dublikatas eilučių ląstelių 1

Pasikartojančios eilutės kelis kartus, atsižvelgiant į ląstelių vertes su VBA kodu


rodyklė mėlyna dešinė burbulas Pasikartojančios eilutės kelis kartus, atsižvelgiant į ląstelių vertes su VBA kodu

Norėdami kopijuoti ir dubliuoti visas eilutes kelis kartus pagal ląstelių vertes, šis VBA kodas gali jums padėti, atlikite šiuos veiksmus:

1. Laikykite nuspaudę ALT + F11 raktus atidaryti "Microsoft Visual Basic for Applications" langas.

2, Spauskite įsiuvas > Moduliaiir įklijuokite šį kodą Moduliai Langas.

VBA kodas: pasikartojančios eilutės kelis kartus pagal ląstelių vertę:

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. Tada paspauskite F5 raktas paleisti šį kodą, visos eilutės buvo kartojamos kelis kartus, atsižvelgiant į ląstelių vertę, esančią D stulpelyje, kai jums reikia.

pastabos: Pirmiau nurodytu kodu - raidė A rodo jūsų duomenų diapazono pradžios stulpelį ir raidę D yra stulpelio raidė, kurią norite pakartoti pagal eilutes. Prašome jas pakeisti pagal savo poreikius.



Rekomenduojami įrankiai našumui

Office Tab

aukso žvaigždutė1 Pateikite patogius skirtukus "Excel" ir kitai "Office" programinei įrangai, kaip ir "Chrome", "Firefox" ir "Internet Explorer".

Kutools for Excel

aukso žvaigždutė1 Nuostabi! Padidinkite savo našumą per 5 min. Nereikia jokių specialių įgūdžių, išskyrus dvi valandas kiekvieną dieną!

aukso žvaigždutė1 "300" naujos funkcijos "Excel", "Excel" daug lengvumo ir galingumo:

  • Sujungti elementus / eilutes / stulpelius neprarandant duomenų.
  • Suderinkite ir susinenkite kelis lapus ir darbaknygius.
  • Palyginkite diapazonus, nukopijuokite keletą diapazonų, konvertuokite tekstą į datą, vienetą ir valiutos konvertavimą.
  • Skaičiuojamas pagal spalvas, tarpinių pranešimų vidurkis, išplėstinis rūšiavimas ir super filtras,
  • Daugiau Pasirinkite / Įterpti / Ištrinti / Tekstas / Formatas / Nuoroda / Komentaras / Darbaknygiai / Užduotys Įrankiai ...

Kutools ekrano kopija 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