Ugrás a tartalomra

Hogyan hozhatunk létre új lapokat az Excel minden sorához?

Tételezzük fel, hogy van egy ponttáblázata az összes tanuló nevével az A oszlopban. Most új lapokat szeretne létrehozni az A oszlopban található nevek alapján, és a laponkénti készítés egyedi tanulói adatokat tartalmaz. Vagy egyszerűen csak hozzon létre új lapot a táblázat minden sorához anélkül, hogy figyelembe venné az A oszlopban található neveket. Ebben a videóban módszereket talál ennek elérésére.

Hozzon létre új lapokat minden sorhoz VBA kóddal
Hozzon létre új lapokat minden sorhoz a Kutools for Excel Split Data segédprogramjával


Hozzon létre új lapokat minden sorhoz VBA kóddal

A következő kódokkal új lapokat hozhat létre oszlopértékek alapján, vagy csak új lapokat hozhat létre az Excel minden sorához.

1. nyomja meg más + F11 gombok egyszerre a Microsoft Visual Basic for Applications ablak.

2. Ban,-ben Microsoft Visual Basic for Applications ablakban kattintson betétlap > Modulok. Ezután illessze be a következő kódot a Modulok ablak.

VBA kód: hozzon létre új lapot minden sorhoz az oszlop alapján

Sub parse_data()
'Update by Extendoffice 2018/3/2
    Dim xRCount As Long
    Dim xSht As Worksheet
    Dim xNSht As Worksheet
    Dim I As Long
    Dim xTRrow As Integer
    Dim xCol As New Collection
    Dim xTitle As String
    Dim xSUpdate As Boolean
    Set xSht = ActiveSheet
    On Error Resume Next
    xRCount = xSht.Cells(xSht.Rows.Count, 1).End(xlUp).Row
    xTitle = "A1:C1"
    xTRrow = xSht.Range(xTitle).Cells(1).Row
    For I = 2 To xRCount
        Call xCol.Add(xSht.Cells(I, 1).Text, xSht.Cells(I, 1).Text)
    Next
    xSUpdate = Application.ScreenUpdating
    Application.ScreenUpdating = False
    For I = 1 To xCol.Count
        Call xSht.Range(xTitle).AutoFilter(1, CStr(xCol.Item(I)))
        Set xNSht = Nothing
        Set xNSht = Worksheets(CStr(xCol.Item(I)))
        If xNSht Is Nothing Then
            Set xNSht = Worksheets.Add(, Sheets(Sheets.Count))
            xNSht.Name = CStr(xCol.Item(I))
        Else
            xNSht.Move , Sheets(Sheets.Count)
        End If
        xSht.Range("A" & xTRrow & ":A" & xRCount).EntireRow.Copy xNSht.Range("A1")
        xNSht.Columns.AutoFit
    Next
    xSht.AutoFilterMode = False
    xSht.Activate
    Application.ScreenUpdating = xSUpdate
End Sub

Megjegyzések: A1: C1 a táblázat címtartománya. Igényei alapján megváltoztathatja.

3. nyomja meg F5 kulcs a kód futtatásához, akkor új munkalapok jönnek létre az aktuális munkafüzet összes munkalapja után, az alábbi képernyőképen:

Ha közvetlenül új lapokat szeretne létrehozni minden sorhoz, az oszlop értékének figyelembevétele nélkül, akkor a következő kódot használhatja.

VBA kód: Minden sorhoz közvetlenül hozzon létre új lapot

Sub RowToSheet()
	Dim xRow As Long
	Dim I As Long
	With ActiveSheet
		xRow = .Range("A" & Rows.Count).End(xlUp).Row
		For I = 1 To xRow
			Worksheets.Add(, Sheets(Sheets.Count)).Name = "Row " & I
			.Rows(I).Copy Sheets("Row " & I).Range("A1")
		Next I
	End With
End Sub

A kód futtatása után az aktív munkalap minden egyes sora új munkalapba kerül.

Megjegyzések: A címsor is egy új lapba kerül ezzel a VBA kóddal.


Hozzon létre új lapokat minden sorhoz a Kutools for Excel Split Data segédprogramjával

Valójában a fenti módszer bonyolult és nehezen érthető. Ebben a részben bemutatjuk Önnek a Osztott adatok hasznossága Kutools az Excel számára.

Alkalmazás előtt Kutools az Excel számáraKérjük, először töltse le és telepítse.

1. Jelölje ki azt a táblázatot, amelyet új lapok létrehozásához használni kell, majd kattintson a gombra Kutools Plus> Köpésadatok. Lásd a képernyőképet:

2. Ban,-ben Az adatok felosztása több munkalapra párbeszédpanelt, kérjük, tegye a következőket.

A. Új lapok létrehozásához oszlopérték alapján:

1). Kérjük, válassza ki a Konkrét oszlop opciót, és adjon meg egy oszlopot, amely alapján fel kívánja osztani az adatokat a legördülő listában;
2). Ha oszlopértékekkel kívánja elnevezni a munkalapokat, válassza a lehetőséget Oszlop értékei a Szabályok legördülő lista;
3). Kattints a OK gomb. Lásd a képernyőképet:

B. Új lapok közvetlen létrehozásához minden sorhoz:

1). Válassza a lehetőséget Fix sorok lehetőséget, írja be a számot 1 a dobozba;
2). Válassza a lehetőséget Sorszámok tól Szabályok legördülő lista;
3). Kattints a OK gomb. Lásd a képernyőképet:

új munkafüzet jön létre, benne az összes új ívvel. Lásd az alábbi képernyőképeket.

Új lapok létrehozása minden sorhoz az oszlop értéke alapján:

Új lap létrehozása minden sorhoz az oszlop értékének figyelembevétele nélkül:

  Ha ingyenes (30 napos) próbaverziót szeretne kapni a segédprogramról, kattintson a letöltéshez, majd lépjen a művelet végrehajtására a fenti lépések szerint.

Hozzon létre új lapokat minden sorhoz a Kutools for Excel Split Data segédprogramjával

A legjobb irodai hatékonyságnövelő eszközök

🤖 Kutools AI Aide: Forradalmasítsa az adatelemzést a következők alapján: Intelligens végrehajtás   |  Kód létrehozása  |  Hozzon létre egyéni képleteket  |  Adatok elemzése és diagramok létrehozása  |  A Kutools funkciók meghívása...
Népszerű szolgáltatások: Ismétlődések keresése, kiemelése vagy azonosítása   |  Üres sorok törlése   |  Oszlopok vagy cellák kombinálása adatvesztés nélkül   |   Kerek Formula nélkül ...
Szuper keresés: Több kritérium VLookup    Többértékű VLookup  |   VLookup több munkalapon   |   Fuzzy Lookup ....
Speciális legördülő lista: Gyors legördülő lista létrehozása   |  Függő legördülő lista   |  Többszörösen válassza ki a legördülő listát ....
Oszlopkezelő: Adjon meg egy adott számú oszlopot  |  Oszlopok mozgatása  |  Kapcsolja be a Rejtett oszlopok láthatósági állapotát  |  Tartományok és oszlopok összehasonlítása ...
Kiemelt funkciók: Rács fókusz   |  Design nézet   |   Nagy Formula bár    Munkafüzet és lapkezelő   |  Erőforrás-könyvtár (Auto szöveg)   |  Dátumválasztó   |  Kombinálja a munkalapokat   |  Cellák titkosítása/dekódolása    E-mailek küldése listánként   |  Szuper szűrő   |   Speciális szűrő (félkövér/dőlt/áthúzott szűrés...) ...
A 15 legjobb eszközkészlet12 szöveg Eszközök (Szöveg hozzáadása, Karakterek eltávolítása,...)   |   50 + Táblázatos Típusai (Gantt-diagram,...)   |   40+ Praktikus képletek (Számolja ki az életkort a születésnap alapján,...)   |   19 beszúrás Eszközök (Helyezze be a QR-kódot, Kép beszúrása az útvonalból,...)   |   12 Átalakítás Eszközök (Számok szavakig, Valuta átváltás,...)   |   7 Egyesítés és felosztás Eszközök (Haladó kombinált sorok, Hasított sejtek,...)   |   ... és több

Töltsd fel Excel-készségeidet a Kutools for Excel segítségével, és tapasztald meg a még soha nem látott hatékonyságot. A Kutools for Excel több mint 300 speciális funkciót kínál a termelékenység fokozásához és az időmegtakarításhoz.  Kattintson ide, hogy megszerezze a leginkább szükséges funkciót...

Leírás


Az Office lap füles felületet hoz 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!
Comments (33)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
HI, Thanks for this wonder-full code, Can we get dynamic sheet, means if i update data in respective sheet it will get updated in main sheet.
This comment was minimized by the moderator on the site
Hi vikas chandra,
I can't fix this problem. Sorry about that.
This comment was minimized by the moderator on the site
Hi, I have a problem about title, the title range of my table is A1:AI2, when I changed the code like that it doesn't work.

***Note: A1:C1 is the title range of your table. You can change it based on your needs.***
This comment was minimized by the moderator on the site
Hello, thanks so much for this. I'm looking to modify the macro such that it will create a sheet for each row of a column and within each sheet have a function (average) that I can populate data into and in turn have the outcome linked back into the original sheet. Is this possible? I can try to clarify further if this doesn't make sense or is ambiguous.
This comment was minimized by the moderator on the site
Hi, is there a code which would add only 1 new sheet each time the macro is run, eg 1st time the new sheet would be named on the contents of cell A1, 2nd time the macro was run the new sheet would be named on the contents of A2 etc. thanks in anticipation
This comment was minimized by the moderator on the site
Hello, used this code and worked, but If I want select the more then one rows in header, what will be change in the code ? I have multiple lines in the sheet which I want in every sheet.
This comment was minimized by the moderator on the site
Hello, did you figured out how?
This comment was minimized by the moderator on the site
Hello! I just used this code and it worked! In addition to creating a new sheet for each entry, I want to transpose it to columns and can't figure it out. So for the above example, the output for Nana would look like this - Name NanaScore 86No. 2
This comment was minimized by the moderator on the site
<p> Nana
86
2</p>
This comment was minimized by the moderator on the site
How to reference the use of the code above (credit) ? Is it possible to modify the code ?
This comment was minimized by the moderator on the site
Hi, this is an open communication platform. The code is allowed to reference and modify.
This comment was minimized by the moderator on the site
Nevermind it was hidden trailing spaces. I used the TRIM feature and cleaned it up. Having a row count (line count really so rows -1 prepended to the sheet would be amazing)
This comment was minimized by the moderator on the site
Please can i get help on how to automatically name the sheets using a particular column. This is for the row to sheet VBA. See below

Sub RowToSheet()

Dim xRow As Long

Dim I As Long

With ActiveSheet

xRow = .Range("A" & Rows.Count).End(xlUp).Row

For I = 1 To xRow

Worksheets.Add(, Sheets(Sheets.Count)).Name = "Row " & I

.Rows(I).Copy Sheets("Row " & I).Range("A1")

Next I

End With

End Sub
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations