Vraagje, wat is het doel hiervan?quote:Op zaterdag 29 juni 2019 21:28 schreef wiskundenoob het volgende:
Hoe kan ik makkelijk de rijen met gegevens in 1 sheet verdelen over meerdere sheets?
In sheet 1 heb ik 50.000 rijen met gegevens. Ik wil deze rijen verdelen over 50 sheets met elk 1.000 rijen. Uiteindelijk wil ik dus in sheet rij 1 tot en met 1000, sheet 2 rij 1001 tot en met 2001 enzovoort.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | Sub splitsheets() Dim dataSheet As Worksheet Set dataSheet = Sheets("Sheet1") Dim WS As Worksheet Dim i As Long Dim stepRows As Long Dim maxheets As Long stepRows = 10 'pas nummer aan maxsheets = 4 'pas nummer aan Dim shtName As String Dim CopyRows As String 'er van uitgaande dat alles op Sheet1 staat, en er geen andere sheets zijn. 'knikker reeds aangemaakte sheets weg VBA_Delete_Sheet For i = 1 To maxsheets Set WS = Sheets.Add(After:=Sheets(Worksheets.Count)) shtName = "s" & customFormat(CStr(i)) WS.Name = shtName CopyRows = 1 + (i - 1) * stepRows & ":" & (i) * stepRows dataSheet.Activate Rows(CopyRows).Select Selection.Copy Sheets(shtName).Select Range("A1").Select ActiveSheet.Paste Range("A1").Select dataSheet.Activate Debug.Print WS.Name, CopyRows Set WS = Nothing Next Application.CutCopyMode = False Range("A1").Select End Sub Public Function customFormat(ByRef sString As String) As String customFormat = Right("00" & sString, 2 + Len(sString) - Len(CStr(Val(sString)))) End Function 'delete sheets before inserting new with same name Sub VBA_Delete_Sheet() For Each Sheet In ActiveWorkbook.Worksheets If Not (Sheet.Name = "Sheet1") Then 'no warnings Application.DisplayAlerts = False Sheet.Delete Application.DisplayAlerts = True End If Next Sheet End Sub |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |