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

Hogyan lehet duplikálni a sorokat az oszlop cellaértéke alapján?

Például van egy olyan adattartományom, amely a D oszlopban található számok listáját tartalmazza, és most a D oszlopban szereplő numerikus értékek alapján szeretném a teljes sorokat többször másolni, hogy a következő eredményt kapjam. Hogyan másolhatom többször a sorokat az Excel cellája alapján?

doc duplikálja a sorokat az 1. cellánként

A VBA kóddal rendelkező cellák értékei alapján többször másoljon sorokat


nyíl kék jobb buborék A VBA kóddal rendelkező cellák értékei alapján többször másoljon sorokat

A teljes sorok többszörös másolásához és másolásához a cellaértékek alapján a következő VBA-kód segíthet, kérjük, tegye a következőket:

1. Tartsa lenyomva a ALT + F11 billentyűk megnyitásához Microsoft Visual Basic for Applications ablak.

2. Kattints betétlap > Modulok, és illessze be a következő kódot a Modulok Ablak.

VBA kód: Sorok duplikálása a cella értéke alapján:

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. Ezután nyomja meg a gombot F5 kulcsot a kód futtatásához, a teljes sorokat többször is lemásoltuk a D oszlop cellaértéke alapján, amire szükséged volt.

Megjegyzések: A fenti kódban a betű A az adattartomány kezdő oszlopát és a betűt jelöli D az az oszlopbetű, amely alapján meg akarja másolni a sorokat. Kérjük, változtassa meg őket az Ön igényeinek megfelelően.


A legjobb irodai termelékenységi eszközök

A Kutools for Excel megoldja a legtöbb problémát, és 80% -kal növeli a termelékenységet

  • újrafelhasználás: Gyorsan helyezze be összetett képletek, diagramok és bármi, amit korábban használt; Cellák titkosítása jelszóval; Levelezőlista létrehozása és e-maileket küldeni ...
  • Szuper Formula Bár (könnyedén szerkeszthet több szöveget és képletet); Olvasás elrendezés (könnyen olvasható és szerkeszthető nagyszámú cella); Beillesztés a Szűrt tartományba...
  • Cellák / sorok / oszlopok egyesítése az adatok elvesztése nélkül; Osztott cellák tartalma; Kombinálja a duplikált sorokat / oszlopokat... megakadályozza az ismétlődő cellákat; Hasonlítsa össze a tartományokat...
  • Válassza a Másolat vagy az Egyedi lehetőséget Sorok; Válassza az Üres sorok lehetőséget (az összes cella üres); Super Find és Fuzzy Find sok munkafüzetben; Véletlenszerű kiválasztás ...
  • Pontos másolás Több cella a képletreferencia megváltoztatása nélkül; Automatikus referenciák létrehozása több lapra; Helyezze be a golyókat, Jelölőnégyzetek és még sok más ...
  • Kivonat szöveg, Szöveg hozzáadása, Eltávolítás pozíció szerint, Hely eltávolítása; Hozz létre és nyomtasson személyhívó részösszegeket; Konvertálás a cellatartalom és a megjegyzések között...
  • Szuper szűrő (mentse el és alkalmazza a szűrősémákat más lapokra); Haladó rendezés hónap / hét / nap, gyakoriság és egyebek szerint; Speciális szűrő félkövér, dőlt betűvel ...
  • Kombinálja a munkafüzeteket és a munkalapokat; Táblázatok egyesítése kulcsoszlopok alapján; Az adatok felosztása több lapra; Kötegelt konvertálás xls, xlsx és PDF...
  • Több mint 300 hatékony funkció. Támogatja az Office / Excel 2007-2021 és 365 verziókat. Minden nyelvet támogat. Könnyű üzembe helyezés vállalatában vagy szervezetében. Teljes funkciók 30 napos ingyenes próbaverzió. 60 napos pénzvisszafizetési garancia.
kte lap 201905

Az Office fül a füles felületet hozza az Office-ba, és sokkal könnyebbé teszi a munkáját

  • Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
  • Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
  • 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!
officetab alja
A megjegyzések rendezése szerint
Hozzászólások (41)
Még nincs értékelés. Legyen Ön az első, aki értékel!
A weboldal moderátora ezt a megjegyzést minimalizálta
Ez tökéletesen működött. Mit adjak hozzá a kódhoz, hogy a 0-ás sorok eltűnjenek? Ezt használjuk az SKU-címkékhez. Köszönöm a remek megoldást!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szeretlek. Köszönöm.
A weboldal moderátora ezt a megjegyzést minimalizálta
Köszönöm! A 10. és 11. „D” sor a sor végét jelzi, és előfordulhat, hogy ezt módosítani kell az adattartományon, hogy működjön.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia,
Valaki tudja, hogy ezt a VBA-kódot gyorsan konvertálják Google Apps-szkriptekké (google-lapok)?
A weboldal moderátora ezt a megjegyzést minimalizálta
A fenti kódot használtam, ami remekül működik, de a sor beillesztése után még egy lépésre van szükségem. Egyszerűen nem tudom megfelelően működni. Szükségem van rá, hogy a beillesztés után nullát tegyek a sor „N” oszlopába, de az értéket az eredeti másolt sorban „N”-ben kell tartani.


Sub CopyData()
'Frissítés által Extendoffice 20160922
Dim xRow As Long
Dim VInSertNum As Variant
xSor = 1
Application.ScreenUpdating = Hamis
Do While (Cells(xRow, "A") <> "")
VInSertNum = Cellák (xSor, "J")
If ((VInSertNum > 1) And IsNumeric(VInSertNum)) akkor
Tartomány(Cellák(xSor, "A"), Cellák(xSor, "AN")). Másolás
' Cells(xRow, 14).Érték = 0 ez az összes sort
Tartomány(Cellák(xRow + 1, "A"), Cells(xRow + VInSertNum - 1, "AN")).
'Cellák(xSor, 14).Érték = 0
'ez az összes sort
Selection.Insert Shift:=xlDown
' Cells(xRow, 14).Érték = 0 ez csak az első sorra vonatkozik
xRow = xRow + VInSertNum - 1
'Cellák(xSor - 1, 14).Érték = 0
Ha véget
' Cells(xRow - 1, 14).Érték = 0
xRow = xRow + 1
' Cells(xSor + 1, 14).Érték = 0
Hurok
'Cells(xRow, 14).Érték = 0 ez nem hozott sorokat
Application.ScreenUpdating = Hamis
End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Steve, képes voltál erre? az én igényem is hasonló :(
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló srácok,
Talán az alábbi cikk segíthet, kérjük, nézze meg:
https://www.extendoffice.com/documents/excel/3682-excel-copy-and-insert-row-multiple-times.html
A weboldal moderátora ezt a megjegyzést minimalizálta
Tudod, mi lenne a kód egyszeri megkettőzése a sor alapján, ha mondjuk a d cellában az "Igen" szó szerepel - hasonló kódra törekedtem, de valamiért, ami megkettőz egy sort, ha egy cella igent mond?
A weboldal moderátora ezt a megjegyzést minimalizálta
Tehát ezt a kódot használom, de azt akarom, hogy a teljes dokumentumban keressen, ne csak az 1. sorban vagy bármiben, amit xRow = 1 jelez. Próbálok 1:2000 tartományba tenni, de nem működik. Hogyan azonosíthatom az xRow = bármely olyan sort a lapon, amely tartalmazza az alábbi kódban azonosított információkat?


Dim xRow As Long
Halvány érték változatként


xRow = 1:2000

Application.ScreenUpdating = Hamis
Do While (Cells(xRow, "A") <> "")
Érték = Cellák (xSor, "D")
Érték2 = Cellák (xSor, "A")
Ha nem ((Érték = "allegheny general") és IsNumeric(Érték2 = G0202)) Akkor
Tartomány(Cellák(xSor, "A"), Cellák(xSor, "D")). Másolás
Tartomány (Cellák (xSor + 1, "A"), Cellák (xSor + 1, "D")).
Selection.Insert Shift:=xlDown
xRow = xRow + 1
Ha véget
xRow = xRow + 1
Hurok
Application.ScreenUpdating = Hamis
End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
Hello, ez remekül működött. Van azonban egy 1000 bejegyzést tartalmazó jelentés, és a kód a 480. bejegyzés körül leállt. Hozzáadhatok valamit, hogy a teljes jelentésben befejezze a műveletet?
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Leah!
A kódot 2000 sorban teszteltem, és jól működik.
El tudnád küldeni a munkalapodat a kód tesztelésére?
Az e-mail címem: Skyyang@extendoffice.com
Várom válaszod!
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló! Működni fogtam. Hiba volt az én oldalamon, a jelentésben volt néhány üres sor, amelyek el voltak rejtve, ami miatt a szkript leállította a hurkot. A 8,000 soros jelentésemnél bevált! Köszönöm Q
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Leah és Skyyang!
Hasonló problémám van – a szkript jól működik egy körülbelül 100 soros munkalapon, de nem működik nagyobb dolgoknál. Ellenőriztem, hogy nincsenek-e üres sorok abban az oszlopban, amelyből a szorzási szám származik, és nincsenek üres sorok. Van más oka annak, hogy a szkript nem működik nagyobb adatkészleteknél?
A weboldal moderátora ezt a megjegyzést minimalizálta
Kösz! remek megoldás volt minden bajomra!
A weboldal moderátora ezt a megjegyzést minimalizálta
Úgy tűnik, hogy ez a szkript pontosan az, amire szükségem van, de amikor futtatom, hibát kapok a Selection.Insert Shift:=x1Down sorban

Van valami javaslata, hogyan tudnám ezt megoldani?
A weboldal moderátora ezt a megjegyzést minimalizálta
szia, nekem nem működik, szeretném eltávolítani a betűket és a számokat duplikálni lehetséges?
A weboldal moderátora ezt a megjegyzést minimalizálta
Van mód a modul frissítésére úgy, hogy csak az új adatok duplikálják? Egy folyamatban lévő dokumentumon dolgozom, és nem szeretném, ha a kód olyan adatokat duplikálna, amelyeket korábban megkettőztek.
A weboldal moderátora ezt a megjegyzést minimalizálta
van rá mód, hogy minden ismétlődő cellához hozzáadjunk egy egymást követő karaktert? példa
KTE+0001

KTE+0002
A weboldal moderátora ezt a megjegyzést minimalizálta
Bájos! Köszönöm. Érdekelne, tudna-e valaki tippet adni, hogyan építsek be egy új információs oszlopot a táblázatba (E oszlop), amely minden másolt sorhoz egy növekvő érték, 1, 2, 3, 4 stb... Amikor a következő X-szeres duplikálandó elemhez ér, újra kezdi a számozást 1-től, és minden alkalommal 1-gyel növekszik.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Kipróbáltam, de van-e mód annak mérlegelésére, ha több feltétel is van az általam sokszorosított adatokhoz?
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia,

táblázatot készítek a megadott képlet segítségével, de hibákat tapasztalok. Kérem, valaki tudassa velem, hogy mi legyen a képletem?

a táblázatom AY-től származik, a mennyiségekkel K-ben.
A weboldal moderátora ezt a megjegyzést minimalizálta
hello, próbáltam beállítani ezt a kódot, de nehézségekbe ütköztem.
vannak készletelemeim. minden elem kétsoros.és szeretné őket N számú alkalommal megkettőzni
a táblázat tetején van egy cellám, nevezzük A1-nek, hányszor duplikálom? N
Bármi legyen is az N, annyiszor szeretném megkettőzni a nálam lévő kezdeti készletelemet (A16, A17).
tehát a másolt elemnek A18-al kell kezdődnie (és ez két sor, a következő elem a20 stb.
Kösz
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia, a kód remekül működik. Azt is szerettem volna hozzáadni +1-et a dátumhoz (csak hétköznapokon), amikor a sor duplikálódik.
A weboldal moderátora ezt a megjegyzést minimalizálta
Nagyon szépen köszönöm! Ezzel annyi időt takarítottam meg, hogy korábban minden adatsorom másolására és beillesztésére pazaroltam.
Két hüvelykujj!!
A weboldal moderátora ezt a megjegyzést minimalizálta
Remek kódrészlet!!! Köszönöm!!!
Még senki sem írt megjegyzést
Több ingatlan
Hagyja meg észrevételeit
Feladás vendégként
×
Értékeld ezt a bejegyzést:
0   Karakterek
Javasolt helyek

Kövess minket

Copyright © 2009 - www.extendoffice.com. | Minden jog fenntartva. Powered by ExtendOffice. | Oldaltérkép
A Microsoft és az Office logó a Microsoft Corporation védjegyei vagy bejegyzett védjegyei az Egyesült Államokban és / vagy más országokban.
Sectigo SSL védi