วิธีสร้างแผ่นงานใหม่สำหรับแต่ละแถวใน Excel
สมมติว่าคุณมีตารางคะแนนที่มีชื่อนักเรียนทุกคนในคอลัมน์ A ตอนนี้คุณต้องการสร้างแผ่นงานใหม่ตามชื่อเหล่านี้ในคอลัมน์ A และทำให้แต่ละแผ่นมีข้อมูลของนักเรียนที่ไม่ซ้ำกัน หรือเพียงแค่สร้างแผ่นงานใหม่สำหรับแต่ละแถวในตารางโดยไม่ต้องคำนึงถึงชื่อในคอลัมน์ A ในวิดีโอนี้ คุณจะได้รับวิธีการต่างๆ
สร้างแผ่นงานใหม่สำหรับแต่ละแถวด้วยรหัส VBA
สร้างแผ่นงานใหม่สำหรับแต่ละแถวด้วยยูทิลิตี้ Split Data ของ Kutools for Excel
สร้างแผ่นงานใหม่สำหรับแต่ละแถวด้วยรหัส VBA
ด้วยรหัสต่อไปนี้คุณสามารถสร้างแผ่นงานใหม่ตามค่าคอลัมน์หรือสร้างแผ่นงานใหม่สำหรับแต่ละแถวใน Excel
1 กด อื่น ๆ + F11 พร้อมกันเพื่อเปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง
2 ใน Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่างคลิก สิ่งที่ใส่เข้าไป > โมดูล. จากนั้นวางรหัสต่อไปนี้ลงในไฟล์ โมดูล หน้าต่าง
รหัส VBA: สร้างแผ่นงานใหม่สำหรับแต่ละแถวตามคอลัมน์
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
หมายเหตุ: A1: C1 คือช่วงหัวเรื่องของตารางของคุณ คุณสามารถเปลี่ยนแปลงได้ตามความต้องการของคุณ
3 กด F5 คีย์เพื่อเรียกใช้รหัสจากนั้นแผ่นงานใหม่จะถูกสร้างขึ้นหลังจากแผ่นงานทั้งหมดของสมุดงานปัจจุบันดังภาพหน้าจอด้านล่าง:
หากคุณต้องการสร้างแผ่นงานใหม่สำหรับแต่ละแถวโดยตรงโดยไม่ต้องพิจารณาค่าคอลัมน์คุณสามารถใช้รหัสต่อไปนี้
รหัส VBA: สร้างแผ่นงานใหม่สำหรับแต่ละแถวโดยตรง
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
หลังจากรันโค้ดแล้วแต่ละแถวในแผ่นงานที่ใช้งานจะถูกวางไว้ในแผ่นงานใหม่
หมายเหตุ: แถวหัวเรื่องจะถูกวางไว้ในแผ่นงานใหม่ด้วยรหัส VBA นี้
สร้างแผ่นงานใหม่สำหรับแต่ละแถวด้วยยูทิลิตี้ Split Data ของ Kutools for Excel
อันที่จริงวิธีการข้างต้นซับซ้อนและเข้าใจยาก ในส่วนนี้เราจะแนะนำไฟล์ แยกข้อมูล ประโยชน์ของ Kutools สำหรับ Excel.
ก่อนที่จะใช้ Kutools สำหรับ Excelโปรด ดาวน์โหลดและติดตั้งในตอนแรก.
1. เลือกตารางที่คุณต้องใช้ในการสร้างแผ่นงานใหม่จากนั้นคลิก Kutools พลัส> คายข้อมูล. ดูภาพหน้าจอ:
2 ใน แยกข้อมูลออกเป็นหลายแผ่นงาน โปรดทำดังนี้
A. สำหรับการสร้างแผ่นงานใหม่ตามค่าคอลัมน์:
B. สำหรับการสร้างแผ่นงานใหม่โดยตรงสำหรับแต่ละแถว:
สมุดงานใหม่ถูกสร้างขึ้นโดยมีแผ่นงานใหม่ทั้งหมดอยู่ภายใน ดูภาพหน้าจอด้านล่าง
การสร้างแผ่นงานใหม่สำหรับแต่ละแถวตามค่าคอลัมน์:
การสร้างแผ่นงานใหม่สำหรับแต่ละแถวโดยไม่ต้องพิจารณาค่าคอลัมน์:
หากคุณต้องการทดลองใช้ยูทิลิตีนี้ฟรี (30 วัน) กรุณาคลิกเพื่อดาวน์โหลดแล้วไปใช้การดำเนินการตามขั้นตอนข้างต้น
สร้างแผ่นงานใหม่สำหรับแต่ละแถวด้วยยูทิลิตี้ Split Data ของ Kutools for Excel
สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน
เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...
แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก
- เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
- เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
- เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!