การเพิ่ม Sheet อัตโนมัติตามรายชื่อที่ให้ไว้ล่วงหน้าด้วย VBA

? ในบางงานเราอาจจำเป็นต้องเพิ่มชีทหลาย ๆ ชีต และต้องการให้ชื่อชีตเป็นชื่อที่เรากำหนดไว้แล้วล่วงหน้า การทำเช่นนี้หากทำด้วย Manual จะใช้เวลามาก แต่หากใช้ VBA มาช่วยจะลดเวลาได้มากมายครับ ซึ่งจะขอยกตัวอย่างการใช้ VBA ในการเพิ่มชีตตามด้านล่าง แต่ต้องเตรียมข้อมูลชื่อชีตไว้ก่อนล่วงหน้า โดยมีวิธีการดังนี้คือ

  1. เพิ่มชีตใหม่มา 1 ชีตโดยให้ชื่อว่า Sheet1 > Copy รายชื่อชีตทั้งหมดมาวางที่เซลล์ A1 เป็นต้นไป
  2. จากนั้นเปิดหน้าต่าง VBE โดยการกดแป้น Alt+F11 > เข้าเมนู Insert > Module แล้วนำ Code ด้านล่างไปวาง
    Sub AddWorkSheets()
        Dim i As Long
        Dim r As Range
        On Error Resume Next
        With Worksheets("Sheet1")
            Set r = .Range("A1", .Range("A" & .Rows.Count).End(xlUp))
        End With
        For i = 1 To r.Count
            Worksheets.Add(After:=Worksheets(Worksheets.Count)) _
                .Name = r.Cells(i, 1).Value
        Next i
    End Sub
  3. เมื่อต้องการ Run Code กดแป้น Alt+F8 > เลือก AddWorkSheets > Run

โปรแกรมก็จะเพิ่มชีตให้ใหม่ ตามรายชื่อชีตทั้งหลายที่ให้ไว้ตามข้อ 1 ครับ ?

Scroll to Top