วิธีสร้างแผ่นงานใหม่สำหรับแต่ละแถวใน Excel
ลองนึกภาพว่าคุณมีตารางชื่อนักเรียนในคอลัมน์ 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.
1. เลือกตารางที่คุณต้องการใช้เพื่อสร้างแผ่นงานใหม่ และคลิก Kutools พลัส> แยกข้อมูล. ดูภาพหน้าจอ:
2 ใน แยกข้อมูลออกเป็นหลายแผ่นงาน โปรดทำดังนี้
A. สำหรับการสร้างแผ่นงานใหม่โดยอิงตามค่าคอลัมน์:
B. สำหรับการสร้างแผ่นงานใหม่โดยตรงสำหรับแต่ละแถว:
สมุดงานใหม่จะถูกสร้างขึ้นโดยมีแผ่นงานใหม่ทั้งหมดอยู่ภายใน ดูภาพหน้าจอด้านล่าง
การสร้างแผ่นงานใหม่สำหรับแต่ละแถวโดยอิงตามค่าของคอลัมน์:
การสร้างแผ่นงานใหม่สำหรับแต่ละแถวโดยไม่คำนึงถึงค่าคอลัมน์:
Kutools สำหรับ Excel - เพิ่มประสิทธิภาพ Excel ด้วยเครื่องมือที่จำเป็นกว่า 300 รายการ เพลิดเพลินกับฟีเจอร์ AI ฟรีถาวร! Get It Now
การสาธิต: สร้างแผ่นงานใหม่สำหรับแต่ละแถวด้วยยูทิลิตี้แยกข้อมูลของ Kutools สำหรับ Excel
สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน
เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...
แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก
- เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
- เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
- เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!