Bỏ qua nội dung chính

Làm cách nào để tạo trang tính mới cho mỗi hàng trong Excel?

Tác giả: Siluvia Sửa đổi lần cuối: 2022-03-31

Giả sử bạn có một bảng điểm với tất cả tên của học sinh trong cột A. Bây giờ, bạn muốn tạo các trang tính mới dựa trên các tên này trong cột A và làm cho mỗi trang tính chứa dữ liệu của một học sinh duy nhất. Hoặc chỉ cần tạo trang tính mới cho chỉ mỗi hàng trong bảng mà không cần xem xét các tên trong cột A. Trong vedio này, bạn sẽ nhận được các phương pháp để đạt được nó.

Tạo trang tính mới cho mỗi hàng bằng mã VBA
Tạo trang tính mới cho mỗi hàng với tiện ích Dữ liệu phân tách của Kutools cho Excel


Tạo trang tính mới cho mỗi hàng bằng mã VBA

Với các mã sau, bạn có thể tạo trang tính mới dựa trên giá trị cột hoặc chỉ tạo trang tính mới cho mỗi hàng trong Excel.

1. nhấn Khác + F11 các phím đồng thời để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. bên trong Microsoft Visual Basic cho các ứng dụng cửa sổ, nhấp Chèn > Mô-đun. Và sau đó dán mã sau vào Mô-đun cửa sổ.

Mã VBA: tạo trang tính mới cho mỗi hàng dựa trên cột

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

Chú thích: A1: C1 là dải tiêu đề của bảng của bạn. Bạn có thể thay đổi nó dựa trên nhu cầu của bạn.

3. nhấn F5 phím để chạy mã, sau đó các trang tính mới được tạo sau khi tất cả các trang tính của sổ làm việc hiện tại như ảnh chụp màn hình bên dưới:

Nếu bạn muốn trực tiếp tạo trang tính mới cho mỗi hàng mà không cần xem xét giá trị cột, bạn có thể sử dụng mã sau.

Mã VBA: Trực tiếp tạo trang tính mới cho mỗi hàng

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

Sau khi chạy mã, mỗi hàng trong trang tính đang hoạt động sẽ được đặt trong một trang tính mới.

Chú thích: Hàng tiêu đề cũng sẽ được đặt trong một trang tính mới với mã VBA này.


Tạo trang tính mới cho mỗi hàng với tiện ích Dữ liệu phân tách của Kutools cho Excel

Trên thực tế, phương pháp trên là phức tạp và khó hiểu. Trong phần này, chúng tôi giới thiệu cho bạn Dữ liệu phân tách tiện ích của Kutools cho Excel.

Trước khi áp dụng Kutools cho Excel, Xin vui lòng tải xuống và cài đặt nó trước tiên.

1. Chọn bảng bạn cần sử dụng để tạo trang tính mới, sau đó nhấp vào Kutools Plus> Dữ liệu nhổ. Xem ảnh chụp màn hình:

2. bên trong Chia dữ liệu thành nhiều trang tính hộp thoại, vui lòng làm như sau.

A. Để tạo trang tính mới dựa trên giá trị cột:

1). Vui lòng chọn Cột cụ thể và chỉ định một cột mà bạn muốn tách dữ liệu dựa trên trong danh sách thả xuống;
2). Nếu bạn muốn đặt tên các trang tính với giá trị cột, vui lòng chọn Giá trị của cột trong Nội quy danh sách thả xuống;
3). Nhấn vào OK cái nút. Xem ảnh chụp màn hình:

B. Để tạo trực tiếp trang tính mới cho mỗi hàng:

1). Lựa chọn Hàng cố định tùy chọn, nhập số 1 vào trong hộp;
2). Lựa chọn Số hàng từ Nội quy danh sách thả xuống;
3). Nhấn vào OK cái nút. Xem ảnh chụp màn hình:

một sổ làm việc mới được tạo với tất cả các trang tính mới bên trong. Xem ảnh chụp màn hình bên dưới.

Tạo trang tính mới cho mỗi hàng dựa trên giá trị cột:

Tạo trang tính mới cho mỗi hàng mà không xem xét giá trị cột:

  Nếu bạn muốn dùng thử miễn phí (30 ngày) tiện ích này, vui lòng nhấp để tải xuống, và sau đó đi đến áp dụng hoạt động theo các bước trên.

Tạo trang tính mới cho mỗi hàng với tiện ích Dữ liệu phân tách của Kutools cho Excel

Công cụ năng suất văn phòng tốt nhất

🤖 Trợ lý AI của Kutools: Cách mạng hóa việc phân tích dữ liệu dựa trên: Thực thi thông minh   |  Tạo mã  |  Tạo công thức tùy chỉnh  |  Phân tích dữ liệu và tạo biểu đồ  |  Gọi các hàm Kutools...
Các tính năng phổ biến: Tìm, đánh dấu hoặc xác định các bản sao   |  Xóa hàng trống   |  Kết hợp các cột hoặc ô mà không làm mất dữ liệu   |   Vòng không có công thức hữu ích. Cảm ơn !
Siêu tra cứu: Nhiều tiêu chí VLookup    VLookup Nhiều Giá Trị  |   VLookup trên nhiều trang tính   |   Tra cứu mờ ....
Danh sách thả xuống nâng cao: Tạo nhanh danh sách thả xuống   |  Danh sách thả xuống phụ thuộc   |  Danh sách thả xuống nhiều lựa chọn ....
Trình quản lý cột: Thêm một số cột cụ thể  |  Di chuyển cột  |  Chuyển đổi trạng thái hiển thị của các cột ẩn  |  So sánh dãy và cột hữu ích. Cảm ơn !
Các tính năng nổi bật: Tiêu điểm lưới   |  Chế độ xem thiết kế   |   Thanh công thức lớn    Trình quản lý sổ làm việc & trang tính   |  Thư viện tài nguyên (Văn bản tự động)   |  Bảng chọn ngày   |  Kết hợp các bảng tính   |  Mã hóa/Giải mã ô    Gửi email theo danh sách   |  Siêu lọc   |   Bộ lọc đặc biệt (lọc in đậm/nghiêng/gạch ngang...) ...
15 bộ công cụ hàng đầu12 bản văn CÔNG CỤ (thêm văn bản, Xóa ký tự,...)   |   50 + Biểu đồ Các loại (Biểu đồ Gantt,...)   |   40+ Thực tế Công thức (Tính tuổi dựa trên ngày sinh,...)   |   19 chèn CÔNG CỤ (Chèn mã QR, Chèn ảnh từ đường dẫn,...)   |   12 Chuyển đổi CÔNG CỤ (Số thành từ, Chuyển đổi tiền tệ,...)   |   7 Hợp nhất & Tách CÔNG CỤ (Các hàng kết hợp nâng cao, Chia ô,...)   |   ... và nhiều hơn nữa

Nâng cao kỹ năng Excel của bạn với Kutools for Excel và trải nghiệm hiệu quả hơn bao giờ hết. Kutools for Excel cung cấp hơn 300 tính năng nâng cao để tăng năng suất và tiết kiệm thời gian.  Bấm vào đây để có được tính năng bạn cần nhất...

Mô tả


Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
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