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

Wie dupliziere ich Zeilen basierend auf dem Zellenwert in einer Spalte?

Zum Beispiel habe ich einen Datenbereich, der eine Liste von Zahlen in Spalte D enthält, und jetzt möchte ich die gesamten Zeilen basierend auf den numerischen Werten in Spalte D mehrmals duplizieren, um das folgende Ergebnis zu erhalten. Wie kann ich die Zeilen basierend auf den Zellenwerten in Excel mehrmals kopieren?

doc doppelte Zeilen nach Zelle 1

Duplizieren Sie Zeilen mehrmals basierend auf Zellenwerten mit VBA-Code


Pfeil blau rechte Blase Duplizieren Sie Zeilen mehrmals basierend auf Zellenwerten mit VBA-Code

Der folgende VBA-Code kann Ihnen dabei helfen, die gesamten Zeilen basierend auf den Zellenwerten mehrmals zu kopieren und zu duplizieren:

1. Halten Sie die Taste gedrückt ALT + F11 Schlüssel zum Öffnen der Microsoft Visual Basic für Applikationen Fenster.

2. Klicken Sie Insert > Modulund fügen Sie den folgenden Code in das Feld ein Modul Fenster.

VBA-Code: Duplizieren Sie Zeilen mehrmals basierend auf dem Zellenwert:

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. Dann drücken F5 Um diesen Code auszuführen, wurden die gesamten Zeilen je nach Bedarf mehrmals basierend auf dem Zellenwert in Spalte D dupliziert.

Hinweis: Im obigen Code der Buchstabe A gibt die Startspalte Ihres Datenbereichs und den Buchstaben an D ist der Spaltenbuchstabe, auf dessen Grundlage Sie die Zeilen duplizieren möchten. Bitte ändern Sie sie nach Ihren Wünschen.


Die besten Tools für die Office-Produktivität

Kutools for Excel löst die meisten Ihrer Probleme und erhöht Ihre Produktivität um 80%

  • Wiederverwendung: Schnell einfügen komplexe Formeln, Diagramme und alles, was du vorher benutzt hast; Zellen verschlüsseln mit Passwort; Mailingliste erstellen und E-Mails senden ...
  • Super Formelriegel (leicht mehrere Textzeilen und Formeln bearbeiten); Layout lesen (leichtes Lesen und Bearbeiten einer großen Anzahl von Zellen); In gefilterten Bereich einfügen...
  • Zellen / Zeilen / Spalten zusammenführen ohne Daten zu verlieren; Inhalt geteilter Zellen; Kombinieren Sie doppelte Zeilen / Spalten... doppelte Zellen verhindern; Bereiche vergleichen...
  • Wählen Sie Duplizieren oder Eindeutig Reihen; Wählen Sie Leere Zeilen (alle Zellen sind leer); Super Find und Fuzzy Find in vielen Arbeitsmappen; Zufällige Auswahl ...
  • Exakte Kopie Mehrere Zellen ohne Änderung der Formelreferenz; Referenzen automatisch erstellen zu mehreren Blättern; Aufzählungszeichen einfügen, Kontrollkästchen und mehr ...
  • Text extrahieren, Text hinzufügen, Nach Position entfernen, Leerzeichen entfernen;; Paging-Zwischensummen erstellen und drucken; Inhalt und Kommentare zwischen Zellen konvertieren...
  • Superfilter (Speichern und Anwenden von Filterschemata auf andere Blätter); Erweiterte Sortierung nach Monat / Woche / Tag, Häufigkeit und mehr; Spezialfilter fett, kursiv ...
  • Kombinieren Sie Arbeitsmappen und Arbeitsblätter;; Tabellen basierend auf Schlüsselspalten zusammenführen; Daten in mehrere Blätter aufteilen; Batch-Konvertierung von xls, xlsx und PDF...
  • Mehr als 300 leistungsstarke Funktionen. Unterstützt Office / Excel 2007-2021 und 365. Unterstützt alle Sprachen. Einfache Bereitstellung in Ihrem Unternehmen oder Ihrer Organisation. 30-tägige kostenlose Testversion mit allen Funktionen. 60 Tage Geld-zurück-Garantie.
kte tab 201905

Office Tab Bringt die Oberfläche mit Registerkarten in Office und erleichtert Ihnen die Arbeit erheblich

  • Aktivieren Sie das Bearbeiten und Lesen von Registerkarten in Word, Excel und PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters und nicht in neuen Fenstern.
  • Steigert Ihre Produktivität um 50 % und reduziert jeden Tag Hunderte von Mausklicks für Sie!
officetab unten
Kommentare (41)
Noch keine Bewertungen. Bewerten Sie als Erster!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Dies funktionierte perfekt. Was würde ich Ihrem Code hinzufügen, damit alle Zeilen mit '0' verschwinden? Wir verwenden dies für SKU-Etiketten. Danke für die tolle Lösung!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Ich liebe dich. Danke.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Danke! Zeilen 10 und 11 "D" zeigt das Ende der Zeile an und dies muss möglicherweise in Ihren Datenbereich geändert werden, damit es funktioniert.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo,
Weiß jemand diesen VBA-Code in Google Apps-Skripte (Google Sheets) umzuwandeln?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Ich habe den obigen Code verwendet, der großartig funktioniert, aber ich brauche einen weiteren Schritt, nachdem die Zeile eingefügt wurde. Ich kann es einfach nicht richtig zum Laufen bringen. Ich brauche es, um Null in Spalte "N" in der Zeile zu setzen, nachdem es eingefügt wurde, aber den Wert in "N" in der ursprünglich kopierten Zeile zu behalten.


Sub CopyData()
'Updateby Extendoffice 20160922
Dim xRow As Long
Dim VInSertNum als Variante
xReihe = 1
Application.ScreenUpdating = False
Do While (Cells(xRow, "A") <> "")
VInSertNum = Zellen (xRow, "J")
If ((VInSertNum > 1) And IsNumeric(VInSertNum)) Then
Range(Cells(xRow, "A"), Cells(xRow, "AN")).Kopieren
' Cells(xRow, 14).Value = 0 das hat alle Zeilen gemacht
Range(Cells(xRow + 1, "A"), Cells(xRow + VInSertNum - 1, "AN")).Select
'Zellen (xRow, 14).Wert = 0
'das hat alle Reihen gemacht
Selection.Insert Shift: = xlDown
' Cells(xRow, 14).Value = 0 dies hat nur die erste Zeile gemacht
xRow = xRow + VInSertNum - 1
'Zellen (xRow - 1, 14).Wert = 0
End If
' Zellen(xRow - 1, 14).Wert = 0
xRow = xRow + 1
' Zellen(xRow + 1, 14).Wert = 0
Loop
'Cells(xRow, 14).Value = 0 dies hat keine Zeilen gemacht
Application.ScreenUpdating = False
End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Steve, konntest du das tun. meine Anforderung ist ähnlich :(
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Leute,
Vielleicht kann Ihnen der folgende Artikel helfen, bitte überprüfen Sie ihn:
https://www.extendoffice.com/documents/excel/3682-excel-copy-and-insert-row-multiple-times.html
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Wissen Sie, wie der Code lauten würde, um die Zeile nur einmal zu duplizieren, basierend darauf, ob Zelle d "Ja" enthält - ich habe einen ähnlichen Code gesucht, aber nach etwas, das eine Zeile dupliziert, basierend auf einer Zelle, die "Ja" sagt
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Also verwende ich diesen Code, aber ich möchte, dass er das gesamte Dokument durchsucht, nicht nur Zeile 1 oder was auch immer durch xRow = 1 angezeigt wird. Ich versuche, den Bereich 1:2000 einzugeben, aber es funktioniert nicht. Wie kann ich xRow = jede Zeile auf dem Blatt identifizieren, die die Informationen enthält, die ich im folgenden Code identifiziere?


Dim xRow As Long
Dimmwert als Variante


xRow = 1: 2000

Application.ScreenUpdating = False
Do While (Cells(xRow, "A") <> "")
Wert = Zellen (xRow, "D")
Wert2 = Zellen (xRow, "A")
If Not ((Value = "allegheny general") And IsNumeric(Value2 = G0202)) Then
Range(Cells(xRow, „A“), Cells(xRow, „D“)).Kopieren
Range(Cells(xRow + 1, "A"), Cells(xRow + 1, "D")).Select
Selection.Insert Shift: = xlDown
xRow = xRow + 1
End If
xRow = xRow + 1
Loop
Application.ScreenUpdating = False
End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, das hat super funktioniert. Ich habe jedoch einen Bericht mit 1000 Einträgen und der Code wurde bei Eintrag 480 nicht mehr dupliziert. Kann ich etwas hinzufügen, damit die Aktion für den gesamten Bericht abgeschlossen wird?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, Lea,
Ich habe den Code in 2000 Zeilen getestet und er funktioniert gut.
Könnten Sie mir Ihr Arbeitsblatt zum Testen des Codes zusenden?
Meine E-Mail-Adresse ist skyyang@extendoffice.com €XNUMX
Freuen Sie sich auf Ihre Antwort!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo! Ich habe es zum Laufen gebracht. Es war ein Fehler auf meiner Seite, der Bericht hatte ein paar leere Zeilen, die ausgeblendet waren, was dazu führte, dass das Skript die Schleife stoppte. Bei meinem Bericht mit 8,000 Zeilen hat es funktioniert! DankeQ
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Leah und Skyyang,
Ich habe ein ähnliches Problem - das Skript funktioniert gut in einem Arbeitsblatt mit etwa 100 Zeilen, aber es funktioniert nicht mehr für etwas Größeres. Ich habe in der Spalte, aus der die Multiplikationszahl stammt, nach leeren Zeilen gesucht, und es gibt keine. Gibt es andere Gründe, warum das Skript für größere Datensätze möglicherweise nicht funktioniert?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Vielen Dank! Es war eine großartige Lösung für alle meine Probleme!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Dieses Skript scheint genau das zu sein, was ich brauche, aber wenn ich es ausführe, erhalte ich einen Fehler in der Zeile Selection.Insert Shift:=x1Down

Irgendwelche Vorschläge, wie ich das beheben kann?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
hallo, bei mir geht das nicht, ich möchte buchstaben entfernen und duplikate sind möglich?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Gibt es eine Möglichkeit, das Modul so zu aktualisieren, dass nur neue Daten dupliziert werden? Ich arbeite an einem fortlaufenden Dokument und möchte nicht, dass der Code zuvor duplizierte Daten dupliziert.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Gibt es eine Möglichkeit, jeder wiederholten Zelle ein aufeinanderfolgendes Zeichen hinzuzufügen? Beispiel
KTE+0001

KTE+0002
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Schön! Danke. Ich frage mich, ob jemand einen Hinweis geben könnte, wie ich eine neue Informationsspalte in die Tabelle (Spalte E) einbauen würde, die eine Anzahl von inkrementierenden Werten für jede kopierte Zeile ist, 1, 2, 3, 4 usw. ... und dann Wenn das nächste Element X-mal dupliziert werden soll, beginnt die Nummerierung erneut bei 1 und erhöht sich jedes Mal um 1.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, ich habe das versucht, aber gibt es eine Möglichkeit zu prüfen, ob es mehrere Kriterien für die Daten gibt, die ich dupliziere?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo,

Ich erstelle eine Tabelle mit der bereitgestellten Formel, aber ich habe Fehler. Kann mir bitte jemand sagen, wie meine Formel lauten soll?

meine Tabelle ist von AY mit den Mengenangaben in K.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, ich habe versucht, diesen Code anzupassen, habe aber Schwierigkeiten.
Ich habe Inventargegenstände. Jedes Element besteht aus zwei Zeilen. und möchte, dass sie N Mal dupliziert werden
Oben in der Tabelle habe ich eine Zelle, nennen wir sie A1, ich habe, wie oft sie dupliziert wird? N
Was auch immer der Wert N ist, ich möchte das anfängliche Inventarelement, das ich habe (A16, A17), so oft duplizieren.
Das kopierte Element sollte also in A18 beginnen (und es sind zwei Zeilen, das nächste Element a20 usw.
Vielen Dank
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, der Code funktioniert super. Ich wollte auch jedes Mal, wenn die Zeile dupliziert wird, +1 zum Datum hinzufügen (nur Wochentage).
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Vielen Dank! Das hat mir so viel Zeit gespart, dass ich das Kopieren und Einfügen all meiner Datenzeilen verschwendet habe.
Zwei Daumen hoch!!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Toller Code!!! Danke!!!
Es sind noch keine Kommentare vorhanden
Mehr laden
Hinterlassen Sie Ihre Kommentare
Als Gast posten
×
Bewerte diese Nachricht:
0   Figuren
Vorgeschlagene Standorte

Folgen Sie uns

Copyright © 2009 - www.extendoffice.com. | Alle Rechte vorbehalten. Unterstützt von ExtendOffice. | Sitemap
Microsoft und das Office-Logo sind Marken oder eingetragene Marken der Microsoft Corporation in den USA und / oder anderen Ländern.
Geschützt durch Sectigo SSL