Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

VBA อัตโนมัติ: แยกชีท Excel หลายชีทตามจำนวนแถวที่กำหนด

บางครั้งต้อง แยกชีท Excel หลายชีทตามจำนวนแถว เพื่อคำนวณง่ายขึ้น บทความนี้สอนใช้ Microsoft Excel VBA แยกชีทอัตโนมัติ พร้อมตัวอย่างและคำอธิบาย

สมุดงานฝึกฝน

ดาวน์โหลดไฟล์ด้านล่างเพื่อฝึกปฏิบัติ

Excel VBA แยกชีทตามจำนวนแถว

VBA (Visual Basic for Applications) เป็นภาษาโปรแกรมยอดนิยมสำหรับ Excel ใช้สร้างฟังก์ชันกำหนดเอง เรียนรู้ง่าย ใช้งานสะดวก

ชีทต้นทางที่จะแยก

สมมติมีข้อมูลพนักงานและชั่วโมงทำงาน (B4:C10) ใน Sheet1 ต้องการแยกเป็นหลายชีท ชีทละ 2 แถว

VBA อัตโนมัติ: แยกชีท Excel หลายชีทตามจำนวนแถวที่กำหนด

ขั้นตอนที่ 1: เปิดหน้าต่าง VBA

  • คลิกขวาที่แท็บชีท → View Code

VBA อัตโนมัติ: แยกชีท Excel หลายชีทตามจำนวนแถวที่กำหนด

ขั้นตอนที่ 2: ใส่และรันโค้ด VBA

  • กด Alt + F11 เปิด VBA Editor → Insert → Module
  • วางโค้ดด้านล่าง:
Sub SplitSheet()
    Dim Rng As Range, xRow As Range
    Dim SplitRow As Integer, xSheet As Worksheet
    On Error Resume Next
    xTitleId = "ExcelSplit"
    Set Rng = Application.Selection
    Set Rng = Application.InputBox("Range", xTitleId, Rng.Address, Type:=8)
    SplitRow = Application.InputBox("Row Number Split", xTitleId, 5, Type:=1)
    Set xSheet = Rng.Parent
    Set xRow = Rng.Rows(1)
    Application.ScreenUpdating = False
    For i = 1 To Rng.Rows.Count Step SplitRow
        resizeCount = SplitRow
        If (Rng.Rows.Count - xRow.Row + 1) < SplitRow Then
            resizeCount = Rng.Rows.Count - xRow.Row + 1
        End If
        xRow.Resize(resizeCount).Copy
        Application.Worksheets.Add after:=Application.Worksheets(Application.Worksheets.Count)
        Application.ActiveSheet.Range("A1").PasteSpecial
        Set xRow = xRow.Offset(SplitRow)
    Next
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub
  • กด F5 หรือปุ่ม Run

VBA อัตโนมัติ: แยกชีท Excel หลายชีทตามจำนวนแถวที่กำหนด

ขั้นตอนที่ 3: เลือก Macro และรัน

  • หน้าต่าง Macros ปรากฏ → เลือกชื่อ Macro → Run

VBA อัตโนมัติ: แยกชีท Excel หลายชีทตามจำนวนแถวที่กำหนด

ขั้นตอนที่ 4: เลือกช่วงข้อมูล

  • กล่องโต้ตอบ ExcelSplit Range → เลือกช่วงข้อมูล → OK

VBA อัตโนมัติ: แยกชีท Excel หลายชีทตามจำนวนแถวที่กำหนด

ขั้นตอนที่ 5: กำหนดจำนวนแถวต่อชีท

  • กล่อง ExcelSplit Row Number Split → ใส่จำนวนแถว (ตัวอย่างใส่ 2) → OK

VBA อัตโนมัติ: แยกชีท Excel หลายชีทตามจำนวนแถวที่กำหนด

ผลลัพธ์สุดท้าย

  • ชีทหลักถูกแยกเป็นหลายชีท ชีทละ 2 แถว

VBA อัตโนมัติ: แยกชีท Excel หลายชีทตามจำนวนแถวที่กำหนด

สรุป

โค้ด VBA นี้แยกชีทตามจำนวนแถวที่กำหนดได้อัตโนมัติ เหมาะสำหรับข้อมูลจำนวนมากที่ต้องแบ่งทำงานแยกกัน มีสมุดงานฝึกฝนให้ลองทำได้

บทความที่เกี่ยวข้อง

  • How to Split Excel Sheet into Multiple Sheets Based on Column Value
  • How to Split Screen in Excel (3 Ways)
  • Separate Sheets in Excel (6 Effective Ways)
  • How to Split Excel Sheet into Multiple Files (3 Quick Methods)
  • Split Sheets into Separate Workbooks in Excel (4 Methods)
  • How to Split a Workbook to Separate Excel Files with VBA Code