วิธีเรียกดูสเปรดชีตใน vba (พร้อมตัวอย่าง)
คุณสามารถใช้วิธีการต่อไปนี้เพื่อนำทางแผ่นงานในสมุดงาน Excel โดยใช้ VBA:
วิธีที่ 1: ดูสเปรดชีตทั้งหมด
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1").Value = 100
Next ws
End Sub
มาโครนี้จะผ่านแต่ละแผ่นงานในสมุดงานและตั้งค่าในเซลล์ A1 ของแต่ละแผ่นงานเป็น 100
วิธีที่ 2: เรียกดูแผ่นงานทั้งหมด ยกเว้นแผ่นงานที่ระบุ
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case Is = "Sheet2", "Sheet3"
'Do not execute any code for these sheets
Case Else
ws.Range("A1").Value = 100
End Select
Next ws
End Sub
มาโครเฉพาะนี้จะวนซ้ำแต่ละแผ่นงานในสมุดงานและตั้งค่าในเซลล์ A1 ของแต่ละแผ่นงานเป็น 100 ยกเว้น แผ่นงานที่เรียกว่า Sheet2 และ Sheet3
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับเวิร์กบุ๊ก Excel ที่มีแผ่นงานเปล่าสี่แผ่น:
ตัวอย่างที่ 1: เรียกดูแผ่นงานทั้งหมด
เราสามารถใช้มาโครต่อไปนี้เพื่อตั้งค่าของเซลล์ A1 ในแต่ละแผ่นงานในสมุดงานของเราให้เท่ากับ 100:
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1").Value = 100
Next ws
เมื่อเราเรียกใช้แมโครนี้ ค่าของเซลล์ A1 ในแต่ละแผ่นงานของสมุดงานจะเท่ากับ 100:
ตัวอย่างที่ 2: เรียกดูแผ่นงานทั้งหมด ยกเว้นแผ่นงานที่ระบุ
สมมติว่าเราต้องการดูแต่ละแผ่นงานและตั้งค่าของเซลล์ A1 ในแต่ละแผ่นงานเป็น 100 ยกเว้น แผ่นงานที่เรียกว่า Sheet2 และ Sheet3
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case Is = "Sheet2", "Sheet3"
'Do not execute any code for these sheets
Case Else
ws.Range("A1").Value = 100
End Select
Next ws
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราจะเห็นว่า Sheet1 และ Sheet4 มีค่า 100 ในเซลล์ A1
อย่างไรก็ตาม Sheet2 และ Sheet3 จะไม่มีค่าในเซลล์ A1 เนื่องจากเราใช้ฟังก์ชัน Case เพื่อละเว้นแผ่นงานเหล่านี้:
โปรดทราบว่าในตัวอย่างเหล่านี้ เราได้อ่านเวิร์กชีตแต่ละแผ่นแล้วตั้งค่าของเซลล์ให้เท่ากับค่าที่ระบุ เพื่อความเรียบง่ายเท่านั้น
อย่างไรก็ตาม คุณสามารถใช้ไวยากรณ์ที่คล้ายกันกับคำสั่ง For Each เพื่อทำงานที่ซับซ้อนมากขึ้นในแต่ละชีตได้หากต้องการ
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
VBA: วิธีนับจำนวนแถวในช่วง
VBA: วิธีนับเซลล์ด้วยข้อความเฉพาะ
VBA: วิธีเขียนฟังก์ชัน COUNTIF และ COUNTIFS