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

Hoe maak je nieuwe bladen voor elke rij in Excel?

Stel dat je een scoretabel hebt met alle studentennamen in kolom A. Nu wil je nieuwe bladen maken op basis van deze namen in kolom A, en maak per blad unieke leerlinggegevens. Of maak gewoon een nieuw blad voor elke rij in de tabel zonder rekening te houden met de namen in kolom A. In deze vedio krijgt u methoden om dit te bereiken.

Maak nieuwe bladen voor elke rij met VBA-code
Maak nieuwe bladen voor elke rij met het hulpprogramma Gegevens splitsen van Kutools voor Excel


Maak nieuwe bladen voor elke rij met VBA-code

Met de volgende codes kunt u een nieuw blad maken op basis van kolomwaarden, of gewoon nieuwe bladen maken voor elke rij in Excel.

1. druk op anders + F11 toetsen tegelijkertijd om het Microsoft Visual Basic voor toepassingen venster.

2. In de Microsoft Visual Basic voor toepassingen venster klikt Invoegen > Module. En plak vervolgens de volgende code in het Module venster.

VBA-code: maak een nieuw blad voor elke rij op basis van de kolom

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

Opmerking:: A1: C1 is het titelbereik van uw tafel. U kunt het wijzigen op basis van uw behoeften.

3. druk op F5 sleutel om de code uit te voeren, waarna nieuwe werkbladen worden gemaakt nadat alle werkbladen van de huidige werkmap zijn gemaakt, zoals onder screenshot:

Als u voor elke rij direct nieuwe bladen wilt maken zonder rekening te houden met de kolomwaarde, kunt u de volgende code gebruiken.

VBA-code: maak direct een nieuw blad voor elke rij

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

Nadat de code is uitgevoerd, wordt elke rij in het actieve werkblad in een nieuw werkblad geplaatst.

Opmerking:: De koprij wordt ook in een nieuw blad geplaatst met deze VBA-code.


Maak nieuwe bladen voor elke rij met het hulpprogramma Gegevens splitsen van Kutools voor Excel

In feite is de bovenstaande methode ingewikkeld en moeilijk te begrijpen. In deze sectie stellen we u de Gegevens splitsen nut van Kutools for Excel.

Voor het aanvragen Kutools for Excel, Dan kunt u download en installeer het eerst.

1. Selecteer de tabel die u nodig heeft om nieuwe bladen te maken en klik op Kutools Plus> Gegevens spugen. Zie screenshot:

2. In de Gegevens splitsen in meerdere werkbladen dialoogvenster, doe dan als volgt.

A. Voor het maken van nieuwe bladen op basis van de kolomwaarde:

1). Selecteer het Specifieke kolom optie, en specificeer een kolom waarop u gegevens wilt splitsen op basis van de vervolgkeuzelijst;
2). Als u de werkbladen een naam wilt geven met kolomwaarden, selecteert u Waarden van Column functie in het Reglement keuzelijst;
3). Klik op de OK knop. Zie screenshot:

B. Voor het direct aanmaken van nieuwe bladen voor elke rij:

1). Selecteer Vaste rijen optie, voer nummer in 1 in de doos;
2). Selecteer Rij nummers van de Reglement keuzelijst;
3). Klik op de OK knop. Zie screenshot:

er wordt een nieuwe werkmap gemaakt met alle nieuwe bladen erin. Zie onderstaande screenshots.

Nieuwe bladen maken voor elke rij op basis van de kolomwaarde:

Een nieuw blad maken voor elke rij zonder rekening te houden met de kolomwaarde:

  Als u een gratis proefperiode (30 dagen) van dit hulpprogramma wilt, klik om het te downloaden, en ga vervolgens de bewerking toepassen volgens de bovenstaande stappen.

Maak nieuwe bladen voor elke rij met het hulpprogramma Gegevens splitsen van Kutools voor Excel


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 (30)
Nog geen beoordelingen. Beoordeel als eerste!
Deze opmerking is gemaakt door de moderator op de site
Hallo daar, ik wil werkbladen maken op basis van mijn sjabloonbestand Myformat en deze een naam geven volgens de gegevens in de eerste kolom. Ik heb de VBA-code als volgt aangepast, maar deze genereert te veel lege vellen. Kun je me alsjeblieft helpen om te stoppen met het genereren van blanco bladen. Dank u. Kumar Sub AddSheets() Dim cel As Excel.Range Dim wsWithSheetNames As Excel.Worksheet Dim wbToAddSheetsTo As Excel.Workbook Set wsWithSheetNames = ActiveSheet Set wbToAddSheetsTo = ActiveWorkbook Voor elke cel In wsWithSheetNames.Range("A2:Add.Sheets") With wbToAddSheets. Add After:=ActiveSheet Sheets.Add Type:= _ "C:\Users\Dimple\AppData\Roaming\Microsoft\Templates\MyFormat.xltx" On Error Resume Next ActiveSheet.Name = cell.Value If Err.Number = 165 Then Debug.Print cel.Waarde & "al gebruikt als bladnaam" End If On Error GoTo 1004 End With Next cell End Sub
Deze opmerking is gemaakt door de moderator op de site
Hoi,
Ik krijg altijd 2 bladen per unieke invoer op een rij. Enig idee waarom? Ook hoe moeilijk zou het zijn om het totale aantal rijen dat het gegenereerde blad maakt, toe te voegen aan de bladnaam. Hartelijk bedankt! Laat het me weten als je donaties aanneemt.
Deze opmerking is gemaakt door de moderator op de site
Hallo daar, ik wil mijn exel-bestandssjabloon MyFormat gebruiken om werkbladen te genereren en de werkbladen een naam te geven met de gegevens in de eerste kolom. De volgende VBA-code werkt goed om de werkbladen te genereren volgens MyFormat. Maar het genereert ook honderden blanco vellen op normale Excel-tempels. Kan een instantie me alsjeblieft helpen om te stoppen met het genereren van overtollige blanco vellen. Bedankt Kumar Sub AddSheets() Dim cel As Excel.Range Dim wsWithSheetNames As Excel.Worksheet Dim wbToAddSheetsTo As Excel.Workbook Set wsWithSheetNames = ActiveSheet Set wbToAddSheetsTo = ActiveWorkbook Voor elke cel In wsWithSheetNames.Range("A2:Add.Add") .Add After:=ActiveSheet Sheets.Add Type:= _ "C:\Users\Dreamline\AppData\Roaming\Microsoft\Templates\MyFormat.xltx" Bij fout hervatten volgende ActiveSheet.Name = cel.Waarde als Err.Number = 165 Dan Debug.Print cel.Waarde & "al gebruikt als bladnaam" End If On Error GoTo 1004 End With Next cell End Sub
Deze opmerking is gemaakt door de moderator op de site
Werkbladnamen moeten minder dan of gelijk aan dertig tekens lang zijn.
Niet erg algemeen bekend, maar anders zal de code een standaard leeg werkblad "Blad #" weergeven.

Maak een nieuw werkblad dat uw parseercode zal doorlopen en verwijs als volgt naar de eerste kolom:
=IF(OR('Origineel waarnaar verwezen wordt'!B1<>"", LEN('Origineel waarnaar verwezen wordt'!B1)>30), LEFT('Origineel waarnaar verwezen wordt'!B1,30),'Origineel waarnaar verwezen wordt'!B1)


Kopieer of verwijs naar de rest van het blad zoals u wilt. Zorg ervoor dat de kolom vrij is van gegevensvalidatiebeperkingen als u problemen ondervindt bij het verwijzen naar het andere werkblad.
Deze opmerking is gemaakt door de moderator op de site
Heel erg bedankt voor het plaatsen van dit!!!! Werkte als een tierelier. Kun je uitleggen hoe de eerste set code werkt?
Deze opmerking is gemaakt door de moderator op de site
Beste Yaw,

Hoe bedoel je "leg uit hoe de code werkt"? Het spijt me zo dat ik je punt kan begrijpen.
Deze opmerking is gemaakt door de moderator op de site
Bedankt hiervoor!



Is er in de VBA-code hoe dan ook om de resulterende bladen van de eerste en tweede kolomrijgegevens gecombineerd een naam te geven?



dus voor uw voorbeeld zou blad 2 automatisch "linda 100" worden genoemd
Deze opmerking is gemaakt door de moderator op de site
Beste Joyce,
Dank je wel voor je reactie! Ik hoop dat het onderstaande VBA-script je kan helpen.

Sub parse_data()
Dim xRCount zo lang
Dim xSht als werkblad
Dim xNSht als werkblad
Dim ik zo lang
Dim xTRrow als geheel getal
Dim xCol als nieuwe collectie
Dim xTitle As String
On Error Resume Next
Application.ScreenUpdating = False
Stel xSht = ActiveSheet in
xRCount = xSht.UsedRange.End(xlDown).Rij
xTitel = "A1:B1"
xTRrij = xSht.Bereik(xTitel).Rij
Voor I = 2 Tot xRCount
Bel xCol.Add(CStr(xSht.Cells(I, 1)), CStr(xSht.Cells(I, 1)))
Volgende
Debug.Print xKol.Count
Voor I = 1 Tot xKol.Aantal
Bel xSht.Range(xTitle).AutoFilter(1, CStr(xCol.Item(I)))
Stel xNSht = Niets in
Stel xNSht = Werkbladen in (CStr(xCol.Item(I)))
Als xNSht niets is, dan
Stel xNSht = Worksheets.Add(, Sheets(Sheets.Count)) in
xNSht.Name = CStr(xKol.Item(I) & xSht.Cellen(I + 1, 2))
Anders
xNSht.Move , Sheets (Sheets.Count)
End If
xSht.Range("A" & xTRrow & ":A" & xRCount).VolledigeRij.Copy xNSht.Range("A1")
xNSht.Columns.AutoFit
Volgende
xSht.AutoFilterMode = False
xSht.Activeren
Application.ScreenUpdating = True
End Sub
Deze opmerking is gemaakt door de moderator op de site
Dit was zeer nuttig, precies wat ik zocht. Bedankt!
Deze opmerking is gemaakt door de moderator op de site
Deze code is zeer nuttig, en bijna wat ik zocht.
Maar kan het zo worden aangepast dat er twee bladen zijn -
Blad 1 is de gegevens - een gegevenstabel waarbij kolom A de naam is
Blad 2 is een sjabloon, met tal van velden die moeten worden ingevuld
Wat ik hoopte is het uitvoeren van een macro, die zal
1 Kopieer en plak de sjabloon, in hetzelfde bestand, noem het blad als de naam in cel A1
2 Kopieer cel B1 en plak vervolgens in een geselecteerd veld in de nieuwe sjabloon
3 herhaal langs rij 1 tot leeg
4 herhaal dan voor rij 2 en elke rij tot het einde.
Resultaat is een bestand met x no. bladen allemaal hetzelfde als de sjabloon, met alle velden ingevuld.
Ik heb een bestand geërfd dat andersom werkt, het extraheren van gegevens uit sjablonen naar een tabel, maar kan het niet terugdraaien.....
Deze opmerking is gemaakt door de moderator op de site
Lieve Sam,
Zou leuk zijn als je je werkboek hier zou kunnen bijvoegen.
U kunt uw bestand uploaden met de onderstaande knop Bestanden uploaden.
Deze opmerking is gemaakt door de moderator op de site
Hallo, ik heb geprobeerd je code te gebruiken, maar ik krijg een foutmelding
Looptijdfout '1004':
Toepassingsgedefinieerde of objectgedefinieerde fout
Ik heb geen kennis van VBA (of welke technologie dan ook) maar als een pers debugt, markeert het regel 11 xRCount=xSht.Cells(xSht.Rows.Count,1). Einde(xIUp).Rij
Ik werk met een groot bestand met 127 kolommen en 337 rijen (rijen zullen variëren, kolommen niet) en het is een lijst met Id-nummers en hun details.
Ik heb het bereik gewijzigd zoals je hebt opgemerkt, maar het werkt nog steeds niet Ik gebruik Excel 2010 kun je me alsjeblieft vertellen hoe ik het kan laten werken, indien mogelijk
Bedankt
Deze opmerking is gemaakt door de moderator op de site
Beste Beatriz,
De code wordt bijgewerkt met de probleemoplossing. Probeer het opnieuw. Bedankt voor je reactie.
Deze opmerking is gemaakt door de moderator op de site
Hallo, ik denk dat hier iets nuttigs is voor mijn situatie, maar ik kan VBA of script gebruiken, ik hoop dat je kunt helpen.
Ik heb een sjabloon met veel cellen om met gegevens te vullen, en er zal een zoeksleutel (niet-uniek) zijn die ik in de sjabloon wil invoeren. Op basis van de zoeksleutel worden de gegevens doorzocht en de bijbehorende gegevens op de overeenkomende sleutel worden opgehaald en ingevuld in de sjabloon. De ingevulde sjabloon wordt opgeslagen in een nieuw werkblad. Er zijn misschien meer dan 1 wedstrijdinzendingen. Ik heb het script nodig om door de lijst te blijven zoeken, totdat alle overeenkomsten zijn gekozen en het bepaalde aantal nieuwe werkbladen is gemaakt.
Deze opmerking is gemaakt door de moderator op de site
Hallo, is er een manier om de koprij op elk nieuw werkblad te behouden? (rood omcirkeld in mijn bijlage)

De code haalt alle rijen uit mijn hoofdwerkblad en zet ze over naar nieuwe werkbladen, wat geweldig is. Maar ik wil mijn "master" header-waarde (rood omcirkeld) bovenaan elk nieuw werkblad houden. Bedankt!



Ik verwijs naar deze code van hierboven:

Sub RijNaarBlad()
Dim xRow zo lang
Dim ik zo lang
Met ActiveSheet
xRij = .Bereik("A" & Rijen.Aantal).Einde(xlOmhoog).Rij
Voor I = 1 Tot xRij
Worksheets.Add(, Sheets(Sheets.Count)).Name = "Rij" & I
.Rijen(I).Copy Sheets("Rij" & I).Bereik("A1")
Volgende ik
Eindigt met
End Sub
Deze opmerking is gemaakt door de moderator op de site
Geweldige code, maar kan ik hulp krijgen als mijn gegevens in kolom G staan ​​in plaats van kolom A? wat moet ik veranderen om de kolom G-gegevens op een ander tabblad te hebben?

Bedankt
Deze opmerking is gemaakt door de moderator op de site
Dit is een geweldige code. Veel dank aan brain-boxes bij OfficeExtend !! Is er een manier waarop deze code enigszins kan worden aangepast om afzonderlijke bladen te maken voor elke *kolom* in plaats van rij? Ik heb een foto bijgevoegd van wat ik probeer te bereiken. Is dit mogelijk? Vriendelijke groeten.
Deze opmerking is gemaakt door de moderator op de site
Good Day,
Ik heb je foto hier niet gezien.
Deze opmerking is gemaakt door de moderator op de site
Hallo, hoe de code te wijzigen, als mijn naamveld in de C-kolom staat?
Deze opmerking is gemaakt door de moderator op de site
Hallo Abdul Basit,
De onderstaande VBA-code kan u helpen. Probeer het alsjeblieft.
In de regel: xCName = "3", geeft 3 het kolomnummer aan (hier is de C-kolom) in Excel. U kunt het naar behoefte wijzigen in elk kolomnummer.

Sub parse_data()
'Bijwerken door' Extendoffice 2018 / 3/ 2
Dim xRCount zo lang
Dim xSht als werkblad
Dim xNSht als werkblad
Dim ik zo lang
Dim xTRrow als geheel getal
Dim xCol als nieuwe collectie
Dim xTitle As String
Dim xSUpdate als Boolean
Dim xCName als geheel getal
Dim xTA, xRA, xSRg1 als string
Stel xSht = ActiveSheet in
On Error Resume Next
xRCount = xSht.Cellen(xSht.Rijen.Count, 1).End(xlUp).Rij
xTitel = "A1:C1"
xCName = "3" 'Verander dit nummer in het kolomnummer waarop u nieuwe bladen gaat maken op basis van
xTRrij = xSht.Bereik(xTitel).Cellen(1).Rij
Voor I = 2 Tot xRCount
Bel xCol.Add(xSht.Cells(I, xCName).Text, xSht.Cells(I, xCName).Text)
Volgende
xSUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
xSRg = xSht.Cells(1, xCName).Address(RijAbsolute:=False, ColumnAbsolute:=False)
Voor I = 1 Tot xKol.Aantal
Roep xSht.Range(xTitle).AutoFilter(xCName, CStr(xCol.Item(I))) aan
Stel xNSht = Niets in
Stel xNSht = Werkbladen in (CStr(xCol.Item(I)))
Als xNSht niets is, dan
Stel xNSht = Worksheets.Add(, Sheets(Sheets.Count)) in
xNSht.Naam = CStr(xKol.Item(I))
Anders
xNSht.Move , Sheets (Sheets.Count)
End If
xSht.Range("A" & xTRrow & ":A" & xRCount).VolledigeRij.Copy xNSht.Range("A1")
xNSht.Columns.AutoFit
Volgende
xSht.AutoFilterMode = False
xSht.Activeren
Application.ScreenUpdating = xSUpdate
End Sub
Deze opmerking is gemaakt door de moderator op de site
Coole VBA-code om de slag te slaan.

Hoe kan ik het wijzigen om de eerste kolom niet te kopiëren? En om de kolomnaam te verwijderen?

Met vriendelijke groet
Deze opmerking is gemaakt door de moderator op de site
Kan ik alsjeblieft hulp krijgen bij het automatisch benoemen van de bladen met behulp van een bepaalde kolom. Dit is voor de rij naar VBA. Zie onder

Sub RijNaarBlad()

Dim xRow zo lang

Dim ik zo lang

Met ActiveSheet

xRij = .Bereik("A" & Rijen.Aantal).Einde(xlOmhoog).Rij

Voor I = 1 Tot xRij

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

.Rijen(I).Copy Sheets("Rij" & I).Bereik("A1")

Volgende ik

Eindigt met

End Sub
Deze opmerking is gemaakt door de moderator op de site
Nevermind, het waren verborgen volgspaties. Ik heb de TRIM-functie gebruikt en schoongemaakt. Het hebben van een rijtelling (regeltelling echt, dus rijen -1 die aan het blad worden toegevoegd, zou geweldig zijn)
Deze opmerking is gemaakt door de moderator op de site
Hoe verwijst u naar het gebruik van de bovenstaande code (tegoed)? Is het mogelijk om de code te wijzigen?
Deze opmerking is gemaakt door de moderator op de site
Hallo, dit is een open communicatieplatform. De code mag verwijzen en wijzigen.
Deze opmerking is gemaakt door de moderator op de site
Nana
86
2
Deze opmerking is gemaakt door de moderator op de site
Hallo! Ik heb zojuist deze code gebruikt en het werkte! Naast het maken van een nieuw blad voor elk item, wil ik het naar kolommen transponeren en kan ik er niet achter komen. Dus voor het bovenstaande voorbeeld zou de uitvoer voor Nana er als volgt uitzien: Naam en voornaam NanaScore 86Nee. 2
Deze opmerking is gemaakt door de moderator op de site
Hallo, heb deze code gebruikt en werkte, maar als ik meer dan één rij in de kop wil selecteren, wat verandert er dan in de code? Ik heb meerdere regels in het blad die ik in elk blad wil.
Deze opmerking is gemaakt door de moderator op de site
Hallo, is er een code die slechts 1 nieuw blad toevoegt elke keer dat de macro wordt uitgevoerd, bijvoorbeeld de 1e keer dat het nieuwe blad wordt genoemd in de inhoud van cel A1, 2e keer dat de macro wordt uitgevoerd, krijgt het nieuwe blad een naam op de inhoud van A2 etc. alvast bedankt
Er zijn nog geen reacties geplaatst
Laad meer
Laat uw commentaar
Posten als gast
×
Beoordeel dit bericht:
0   Personages
Voorgestelde locaties