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

Hoe dupliceer ik rijen op basis van de celwaarde in een kolom?

Ik heb bijvoorbeeld een gegevensbereik dat een lijst met getallen in kolom D bevat, en nu wil ik de hele rijen een aantal keer dupliceren op basis van de numerieke waarden in kolom D om het volgende resultaat te krijgen. Hoe kan ik de rijen meerdere keren kopiëren op basis van de celwaarden in Excel?

doc dubbele rijen per cel 1

Dubbele rijen meerdere keren op basis van celwaarden met VBA-code


pijl blauw rechts bel Dubbele rijen meerdere keren op basis van celwaarden met VBA-code

Om de volledige rijen meerdere keren te kopiëren en te dupliceren op basis van de celwaarden, kan de volgende VBA-code u helpen, doe dit als volgt:

1. Houd de ALT + F11 toetsen om de te openen Microsoft Visual Basic voor toepassingen venster.

2. Klikken Invoegen > Moduleen plak de volgende code in het Module Venster.

VBA-code: dubbele rijen meerdere keren op basis van celwaarde:

Sub CopyData()
'Updateby Extendoffice
    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. Druk vervolgens op F5 sleutel om deze code uit te voeren, zijn de volledige rijen meerdere keren gedupliceerd op basis van de celwaarde in kolom D zoals je nodig hebt.

Opmerking:: In de bovenstaande code, de letter A geeft de startkolom van uw gegevensbereik aan, en de letter D is de kolomletter waarop u de rijen wilt dupliceren op basis van. Wijzig ze naar uw behoefte.


De beste tools voor kantoorproductiviteit

Kutools voor Excel lost de meeste van uw problemen op en verhoogt uw productiviteit met 80%

  • visfuik: Snel invoegen complexe formules, grafieken en alles wat je eerder hebt gebruikt; Versleutel cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • Super Formula-balk (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken in gefilterd bereik...
  • Voeg cellen / rijen / kolommen samen zonder gegevens te verliezen; Gespleten cellen inhoud; Combineer dubbele rijen / kolommen... Voorkom dubbele cellen; Vergelijk Ranges...
  • Selecteer Dupliceren of Uniek Rijen; Selecteer lege rijen (alle cellen zijn leeg); Super zoeken en fuzzy zoeken in veel werkboeken; Willekeurige selectie ...
  • Exacte kopie Meerdere cellen zonder de formuleverwijzing te wijzigen; Maak automatisch verwijzingen naar meerdere bladen; Plaats kogels, Selectievakjes en meer ...
  • Extraheer tekst, Tekst toevoegen, Verwijderen op positie, Ruimte verwijderen; Paging-subtotalen maken en afdrukken; Converteren tussen celinhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerd sorteren per maand / week / dag, frequentie en meer; Speciaal filter door vet, cursief ...
  • Combineer werkmappen en werkbladen; Tabellen samenvoegen op basis van sleutelkolommen; Gegevens splitsen in meerdere bladen; Batch Converteer xls, xlsx en PDF...
  • Meer dan 300 krachtige functies. Ondersteunt Office / Excel 2007-2019 en 365. Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Gratis proefperiode van 30 dagen met volledige functies. 60 dagen geld-terug-garantie.
kte tabblad 201905

Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en vermindert elke dag honderden muisklikken!
officetab onderkant
Comments (37)
Nog geen beoordelingen. Beoordeel als eerste!
Deze opmerking is gemaakt door de moderator op de site
Dit werkte perfect. Wat zou ik aan je code toevoegen om regels met '0' te laten verdwijnen? We gebruiken dit voor SKU-labels. Bedankt voor de geweldige oplossing!
Jamie
Deze opmerking is gemaakt door de moderator op de site
Ik houd van jou. Dank u.
Sqril
Deze opmerking is gemaakt door de moderator op de site
Dank u! regel 10 en 11 "D" geeft het einde van de rij aan en dit moet mogelijk worden gewijzigd in uw gegevensbereik om het te laten werken.
David
Deze opmerking is gemaakt door de moderator op de site
Hoi,
Weet iemand hoe je deze VBA-code kunt converteren naar Google Apps-scripts (google sheets)?
OSHRI
Deze opmerking is gemaakt door de moderator op de site
Ik heb de bovenstaande code gebruikt die prima werkt, maar ik heb nog een stap nodig nadat de rij is geplakt. Ik krijg het gewoon niet goed werkend. Ik heb het nodig om nul in kolom "N" in de rij te plaatsen nadat het is geplakt, maar de waarde in "N" in de origineel gekopieerde rij te behouden.


Sub CopyData()
'Bijwerken door' Extendoffice 20160922
Dim xRow zo lang
Dim VInSertNum als variant
xRij = 1
Application.ScreenUpdating = False
Do While (Cellen(xRij, "A") <> "")
VInSertNum = Cellen(xRij, "J")
Als ((VInSertNum > 1) en IsNumeric (VInSertNum)) dan
Bereik(Cellen(xRij, "A"), Cellen(xRij, "AN")).Kopiëren
' Cellen (xRow, 14). Waarde = 0 dit deed alle rijen
Bereik(Cellen(xRij + 1, "A"), Cellen(xRij + VInSertNum - 1, "AN")).Selecteer
'Cellen (xRij, 14). Waarde = 0
'dit deed alle rijen'
Selectie.Verschuiving invoegen:=xlOmlaag
' Cells(xRow, 14).Value = 0 dit deed alleen de eerste rij
xRij = xRij + VInSertNum - 1
'Cellen (xRij - 1, 14). Waarde = 0
End If
' Cellen (xRij - 1, 14). Waarde = 0
xRij = xRij + 1
' Cellen (xRij + 1, 14). Waarde = 0
lus
'Cellen(xRij, 14).Waarde = 0 dit heeft geen rijen opgeleverd
Application.ScreenUpdating = False
End Sub
Steve
Deze opmerking is gemaakt door de moderator op de site
Hallo Steve, heb je dit kunnen doen. mijn eis is een beetje hetzelfde :(
Leena
Deze opmerking is gemaakt door de moderator op de site
Hallo, jongens,
Misschien kan het onderstaande artikel je helpen, check het a.u.b.:
https://www.extendoffice.com/documents/excel/3682-excel-copy-and-insert-row-multiple-times.html
skyyang
Deze opmerking is gemaakt door de moderator op de site
Weet je wat de code zou zijn om de rij slechts één keer te dupliceren, gebaseerd op als cel d 'Ja' bevat - ik heb soortgelijke code achtervolgd, maar voor iets dat een rij zal dupliceren op basis van een cel die ja zegt
Hayley
Deze opmerking is gemaakt door de moderator op de site
Dus ik gebruik deze code, maar ik wil dat het het hele document doorzoekt, niet alleen rij 1 of wat dan ook wordt aangegeven door xRow = 1. Ik probeer het bereik 1:2000 in te voeren, maar het werkt niet. Hoe kan ik xRow = elke rij op het blad identificeren die de informatie bevat die ik in de onderstaande code identificeer?


Dim xRow zo lang
Dimwaarde als variant


xRij = 1: 2000

Application.ScreenUpdating = False
Do While (Cellen(xRij, "A") <> "")
Waarde = Cellen (xRij, "D")
Waarde2 = Cellen (xRij, "A")
Indien niet ((Waarde = "allegheny algemeen") en IsNumeriek(Waarde2 = G0202)) Dan
Bereik(Cellen(xRij, "A"), Cellen(xRij, "D")).Kopiëren
Bereik(Cellen(xRij + 1, "A"), Cellen(xRij + 1, "D")).Selecteer
Selectie.Verschuiving invoegen:=xlOmlaag
xRij = xRij + 1
End If
xRij = xRij + 1
lus
Application.ScreenUpdating = False
End Sub
Jackie
Deze opmerking is gemaakt door de moderator op de site
Hallo, dit werkte prima. Ik heb echter een rapport met 1000 items en de code stopte met dupliceren rond item 480. Is er iets dat ik kan toevoegen zodat het de actie op het hele rapport voltooit?
Leah
Deze opmerking is gemaakt door de moderator op de site
Hallo, Lea,
Ik heb de code in 2000 rijen getest en het werkt goed.
Zou je me je werkblad kunnen sturen om de code te testen?
Mijn e-mailadres is skyyang@extendoffice.com
Kijk uit naar je antwoord!
skyyang
Deze opmerking is gemaakt door de moderator op de site
Hallo! Ik heb het werkend gekregen. Het was een fout van mijn kant, het rapport had een paar lege rijen die verborgen waren waardoor het script stopte met herhalen. Het werkte voor mijn rapport met 8,000 rijen! bedankt Q
Leah
Deze opmerking is gemaakt door de moderator op de site
Hallo Leah en Skyyang,
Ik heb een soortgelijk probleem - het script werkt prima in een werkblad van ongeveer 100 rijen, maar het stopt met werken voor iets groters. Ik heb gecontroleerd op lege rijen in de kolom waar het vermenigvuldigingsnummer vandaan komt en die zijn er niet. Zijn er nog andere redenen waarom het script mogelijk niet werkt voor grotere datasets?
Stela
Deze opmerking is gemaakt door de moderator op de site
Bedankt! het is een geweldige oplossing voor al mijn problemen!
Manuel F
Deze opmerking is gemaakt door de moderator op de site
Dit script lijkt precies te zijn wat ik nodig heb, maar wanneer ik het uitvoer, krijg ik een foutmelding op de regel Selection.Insert Shift:=x1Down

Eventuele suggesties over hoe ik dit oplos?
Naomi
Deze opmerking is gemaakt door de moderator op de site
hallo, voor mij werkt het niet, ik wil letters verwijderen en nummerduplicaat is mogelijk?
Gerardo Enrique Heras Araujo
Deze opmerking is gemaakt door de moderator op de site
Is er een manier om de module bij te werken om alleen nieuwe gegevens te dupliceren? Ik werk aan een lopend document en wil niet dat de code gegevens dupliceert die eerder zijn gedupliceerd.
KAS
Deze opmerking is gemaakt door de moderator op de site
is er een manier waarop we aan elke herhaalde cel een opeenvolgende karakters kunnen toevoegen? voorbeeld
KTE+0001

KTE+0002
ISRA
Deze opmerking is gemaakt door de moderator op de site
Lief! Dank u. Ik vraag me af of iemand een hint kan geven over hoe ik een nieuwe kolom met informatie in de tabel (kolom E) zou kunnen opnemen, dat is een oplopende waarde voor elke gekopieerde rij, 1, 2, 3, 4 enz... en dan wanneer het bij het volgende item komt dat X keer moet worden gedupliceerd, begint het opnieuw te nummeren vanaf 1 en elke keer met 1 te verhogen.
Gerard Gibbs
Deze opmerking is gemaakt door de moderator op de site
Hallo, ik heb dit geprobeerd, maar is er een manier om te overwegen of er meerdere criteria zijn met de gegevens die ik dupliceer?
edongpark
Deze opmerking is gemaakt door de moderator op de site
Hoi,

ik maak een spreadsheet met behulp van de verstrekte formule, maar ik heb fouten. kan iemand me alsjeblieft laten weten wat mijn formule zou moeten zijn?

mijn tabel is van AY met de hoeveelheden in K.
Steven Maryan
Deze opmerking is gemaakt door de moderator op de site
hallo, ik heb geprobeerd deze code aan te passen, maar ondervind problemen.
ik heb voorraadartikelen. elk item is twee rijen. en wil dat ze N aantal keer worden gedupliceerd
aan de bovenkant van de spreadsheet, ik heb een cel, laten we het A1 noemen, hoe vaak wordt ik gedupliceerd? N
wat de waarde N ook is, ik wil het oorspronkelijke voorraaditem dat ik heb (A16, A17) zo vaak dupliceren.
dus het gekopieerde item moet beginnen in A18 (en het zijn twee rijen, het volgende item a20 enz.
Bedankt
zout
Deze opmerking is gemaakt door de moderator op de site
Hallo, de code werkt prima. Ik wilde ook +1 toevoegen aan de datum (alleen op weekdagen) telkens wanneer de rij wordt gedupliceerd.
H Sarin
Deze opmerking is gemaakt door de moderator op de site
Hartelijk bedankt! Dit heeft me zoveel tijd bespaard dat ik vroeger verspilde aan het kopiëren en plakken van al mijn rijen gegevens.
Twee duimen omhoog!!
Chris
Deze opmerking is gemaakt door de moderator op de site
Geweldig stukje code!!! Dank u!!!
Ricardo
Er zijn nog geen reacties geplaatst
Laad meer
Laat uw commentaar
Posten als gast
×
Beoordeel dit bericht:
0  Personages
Voorgestelde locaties