วิธีเรียกดูสเปรดชีตใน 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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *