😀 ในการใช้งาน 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
Pingback: VBA Excel Do...Loop - Excel Tips and Tricks by Santipong Nasui