Jak podzielić dane na wiele arkuszy roboczych na podstawie kolumny w programie Excel?
Przypuśćmy, że masz arkusz z ogromnymi wierszami danych, a teraz musisz podzielić dane na wiele arkuszy na podstawie Imię kolumna (patrz poniższy zrzut ekranu), a nazwy są wprowadzane losowo. Może najpierw możesz je posortować, a następnie skopiować i wkleić jeden po drugim do innych nowych arkuszy. Jednak wielokrotne kopiowanie i wklejanie będzie wymagało cierpliwości. Dzisiaj opowiem o kilku szybkich sztuczkach, aby rozwiązać to zadanie.
Podziel dane na wiele arkuszy roboczych na podstawie kolumny z kodem VBA
Podziel dane na wiele arkuszy roboczych na podstawie kolumny z Kutools for Excel
Podziel dane na wiele arkuszy roboczych na podstawie kolumny z kodem VBA
Jeśli chcesz szybko i automatycznie podzielić dane na podstawie wartości kolumny, poniższy kod VBA jest dobrym wyborem. Zrób tak:
1. Przytrzymaj ALT + F11 klawisze, aby otworzyć Microsoft Visual Basic for Applications okno.
2. Kliknij wstawka > Modułi wklej następujący kod w oknie modułu.
Sub Splitdatabycol()
'updateby Extendoffice
Dim lr As Long
Dim ws As Worksheet
Dim vcol, i As Integer
Dim icol As Long
Dim myarr As Variant
Dim title As String
Dim titlerow As Integer
Dim xTRg As Range
Dim xVRg As Range
Dim xWSTRg As Worksheet
Dim xWS As Worksheet
On Error Resume Next
Set xTRg = Application.InputBox("Please select the header rows:", "Kutools for Excel", "", Type:=8)
If TypeName(xTRg) = "Nothing" Then Exit Sub
Set xVRg = Application.InputBox("Please select the column you want to split data based on:", "Kutools for Excel", "", Type:=8)
If TypeName(xVRg) = "Nothing" Then Exit Sub
vcol = xVRg.Column
Set ws = xTRg.Worksheet
lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
title = xTRg.AddressLocal
titlerow = xTRg.Cells(1).Row
icol = ws.Columns.Count
ws.Cells(1, icol) = "Unique"
Application.DisplayAlerts = False
If Not Evaluate("=ISREF('xTRgWs_Sheet!A1')") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
Else
Sheets("xTRgWs_Sheet").Delete
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
End If
Set xWSTRg = Sheets("xTRgWs_Sheet")
xTRg.Copy
xWSTRg.Paste Destination:=xWSTRg.Range("A1")
ws.Activate
For i = (titlerow + xTRg.Rows.Count) To lr
On Error Resume Next
If ws.Cells(i, vcol) <> "" And Application.WorksheetFunction.Match(ws.Cells(i, vcol), ws.Columns(icol), 0) = 0 Then
ws.Cells(ws.Rows.Count, icol).End(xlUp).Offset(1) = ws.Cells(i, vcol)
End If
Next
myarr = Application.WorksheetFunction.Transpose(ws.Columns(icol).SpecialCells(xlCellTypeConstants))
ws.Columns(icol).Clear
For i = 2 To UBound(myarr)
ws.Range(title).AutoFilter field:=vcol, Criteria1:=myarr(i) & ""
If Not Evaluate("=ISREF('" & myarr(i) & "'!A1)") Then
Set xWS = Sheets.Add(after:=Worksheets(Worksheets.Count))
xWS.Name = myarr(i) & ""
Else
xWS.Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
xWS.Paste Destination:=xWS.Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy xWS.Range("A" & (titlerow + xTRg.Rows.Count))
Sheets(myarr(i) & "").Columns.AutoFit
Next
xWSTRg.Delete
ws.AutoFilterMode = False
ws.Activate
Application.DisplayAlerts = True
End Sub
3. Następnie naciśnij F5 klucz do uruchomienia kodu i pojawia się okienko zachęty przypominające o wybraniu wiersza nagłówka, patrz zrzut ekranu:
4. A następnie kliknij OK przycisk, aw drugim polu zachęty wybierz dane kolumny, na podstawie których chcesz podzielić, patrz zrzut ekranu:
5. Następnie kliknij OK, a wszystkie dane w aktywnym arkuszu są podzielone na wiele arkuszy według wartości kolumny. A podzielone arkusze są nazywane z nazwami podzielonych komórek. Zobacz zrzut ekranu:
Note: Podzielone arkusze są umieszczane na końcu skoroszytu, w którym znajduje się główny arkusz roboczy.
Podziel dane na wiele arkuszy roboczych na podstawie kolumny z Kutools for Excel
Jako początkujący w Excelu ten długi kod VBA jest dla nas nieco trudny, a większość z nas nawet nie wie, jak zmodyfikować kod zgodnie z naszymi potrzebami. Tutaj przedstawię Ci wielofunkcyjne narzędzie -Kutools dla programu Excel, jego Podziel dane Narzędzie nie tylko może pomóc w podzieleniu danych na wiele arkuszy roboczych na podstawie kolumny, ale także może podzielić dane według liczby wierszy.
Uwaga:Aby to zastosować Podziel dane, po pierwsze, należy pobrać plik Kutools dla programu Excel, a następnie szybko i łatwo zastosuj tę funkcję.
Po zainstalowaniu Kutools dla programu Excel, zrób tak:
1. Wybierz zakres danych, które chcesz podzielić.
2. Kliknij Kutools Plus > Ćwiczenie > Podziel danezobacz zrzut ekranu:
3, w Podziel dane na wiele arkuszy roboczych w oknie dialogowym, musisz:
1). Wybierz Konkretna kolumna opcja w Podziel na podstawie i wybierz wartość kolumny, na podstawie której chcesz podzielić dane, z listy rozwijanej. (Jeśli Twoje dane mają nagłówki i chcesz je wstawiać do każdego nowego podzielonego arkusza, zaznacz Moje dane mają nagłówki opcja.)
2). Następnie możesz określić nazwy podzielonych arkuszy roboczych w obszarze Nowa nazwa arkusza sekcji, określ reguły nazw arkuszy z Zasady rozwijanej listy, możesz dodać Prefiks or Przyrostek również dla nazw arkuszy.
3). Kliknij OK przycisk. Zobacz zrzut ekranu:
4. Teraz dane są podzielone na wiele arkuszy w nowym skoroszycie.
Kliknij, aby pobrać Kutools dla programu Excel i bezpłatną wersję próbną teraz!
Podziel dane na wiele arkuszy roboczych na podstawie kolumny z Kutools for Excel
Kutools dla programu Excel zawiera ponad 300 przydatnych narzędzi programu Excel. Bezpłatne wypróbowanie bez ograniczeń w ciągu 30 dni. Pobierz bezpłatną wersję próbną już teraz!
Podobne artykuły:
Jak podzielić dane na wiele arkuszy według liczby wierszy?
Najlepsze narzędzia biurowe
Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas. Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...
Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę
- Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
- Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
- Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!