VBA Excel For…Next

😀 ในการใช้งาน VBA จำเป็นต้องศึกษา Loop Structure ที่สำคัญเรื่องหนึ่งสำหรับการเข้าถึงสมาชิกของ Object หรือตัวแปร คือ For…Next และ For Each…Next และเมื่อเข้าถึงไปยังสมาชิกแต่ละตัวแล้วเราสามารถจะเขียนคำสั่งใด ๆ ได้ตามต้องการ

ในการ Loop ไปยังค่าของตัวเลขนั้น เราสามารถกำหนด Step ได้ด้วย เช่นให้ Loop ไปครั้งละ 10, 20, 100 ฯลฯ สามารถ Loop ได้ทั้งจากน้อยไปหามากและจากมากไปหาน้อยแล้วแต่ความต้องการ

ส่วนการ Loop ไปยัง Object แต่ละตัวจาก Objects ทั้งหมดจะช่วยให้เราเข้าถึง Object เป็นรายตัวเพื่อจะดำเนินการใด ๆ เช่น เปลี่ยนค่า ลบ คัดลอกไปยังปลายทาง ฯลฯ ซึ่งจะช่วยให้เราทำงานในปริมาณมก ๆ ได้โดยสะดวกรวดเร็ว

ตัวอย่างการ Code แสดงการ Loop ด้วย For…Next และ For Each…Next

'Normal forward loop
Sub ForNextLoop()
    Dim i As Integer
    For i = 1 To 10
        Sheets(1).Range("a" & i) = i
    Next i
End Sub

'Loop with step down
Sub ForNextLoopStepDown()
    Dim i As Integer
    For i = 50 To 1 Step -2
        Sheets(1).Range("a" & i) = i
    Next i
End Sub

'Loop with step up
Sub ForNextLoopStepUp()
    Dim i As Integer
    For i = 1 To 100 Step 4
        Sheets(1).Range("a" & i) = i
    Next i
End Sub

'Loop each cell in used range of sheet 1
'and compare value with 0, if less than 0
'assign vallue of cell to 0
Sub ForEachNext()
    Dim a As Range
    For Each a In Sheets(1).UsedRange
        If a < 0 Then
            a.Value = 0
        End If
    Next a
End Sub

Video แสดงตัวอย่างการใช้ For…Next

Video แสดงตัวอย่างการใช้ For Each…Next

สามารถดาวน์โหลดไฟล์ตัวอย่างได้จาก Link นี้ครับ Example File

กรณีมีปัญหาการใช้งาน Excel และ VBA สามารถสอบถามได้ที่ snasui.com

1 thought on “VBA Excel For…Next”

  1. Pingback: VBA Excel Do...Loop - Excel Tips and Tricks by Santipong Nasui

Comments are closed.

Scroll to Top