? ในบางงานเราอาจจำเป็นต้องเพิ่มชีทหลาย ๆ ชีต และต้องการให้ชื่อชีตเป็นชื่อที่เรากำหนดไว้แล้วล่วงหน้า การทำเช่นนี้หากทำด้วย Manual จะใช้เวลามาก แต่หากใช้ VBA มาช่วยจะลดเวลาได้มากมายครับ ซึ่งจะขอยกตัวอย่างการใช้ VBA ในการเพิ่มชีตตามด้านล่าง แต่ต้องเตรียมข้อมูลชื่อชีตไว้ก่อนล่วงหน้า โดยมีวิธีการดังนี้คือ
- เพิ่มชีตใหม่มา 1 ชีตโดยให้ชื่อว่า Sheet1 > Copy รายชื่อชีตทั้งหมดมาวางที่เซลล์ A1 เป็นต้นไป
- จากนั้นเปิดหน้าต่าง 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
- เมื่อต้องการ Run Code กดแป้น Alt+F8 > เลือก AddWorkSheets > Run
โปรแกรมก็จะเพิ่มชีตให้ใหม่ ตามรายชื่อชีตทั้งหลายที่ให้ไว้ตามข้อ 1 ครับ ?