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 (ต่อ)


🧭 Timeline หัวข้อหลัก

  • 00:00:13 แนะนำวัตถุประสงค์: ใช้ For…Next เพื่อควบคุมการทำงานซ้ำ
  • 00:00:45 อธิบายโครงสร้างพื้นฐานของ For…Next
  • 00:01:30 สาธิตการวนรอบตัวเลขจาก 1 ถึง 10
  • 00:02:15 ใช้ตัวแปรนับรอบ เช่น i เพื่อควบคุมการทำงาน
  • 00:03:00 แสดงผลลัพธ์ใน Immediate Window และเซลล์
  • 00:04:20 ประยุกต์ใช้ For…Next กับการกรอกข้อมูลในช่วงเซลล์
  • 00:06:00 ใช้เงื่อนไขร่วมกับ For…Next เพื่อกรองข้อมูล
  • 00:08:10 สาธิตการวนผ่านแถวในชีต Excel เพื่อตรวจสอบค่า
  • 00:10:30 ใช้ For…Next ซ้อนกัน (Nested Loop) เพื่อควบคุมหลายมิติ
  • 00:13:00 อธิบายข้อควรระวัง เช่น การกำหนดค่าตัวแปรและการหลุดจากลูป
  • 00:15:00 ทดสอบการเปลี่ยนค่าข้อมูลและดูผลลัพธ์ที่เปลี่ยนตาม
  • 00:17:30 สรุป: For…Next เป็นโครงสร้างวนรอบที่ทรงพลังและยืดหยุ่น

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


🧭 Timeline หัวข้อหลัก

  • 🧭 Timeline หัวข้อหลัก
  • 00:00:13 แนะนำวัตถุประสงค์: ใช้ For Each…Next เพื่อวนผ่านสมาชิกของ Object
  • 00:00:40 อธิบายความแตกต่างระหว่าง For…Next และ For Each…Next
  • 00:01:10 สาธิตการวนผ่านเซลล์ใน UsedRange ของชีต
  • 00:01:25 ตรวจสอบค่าของเซลล์แต่ละตัว เช่น ถ้าน้อยกว่า 0 ให้เปลี่ยนเป็น 0
  • 00:02:10 ใช้ตัวแปรประเภท Range เพื่อเข้าถึงเซลล์แต่ละตัว
  • 00:02:45 แสดงผลลัพธ์หลังการปรับค่าในเซลล์
  • 00:03:20 ยกตัวอย่างการใช้ For Each กับ Object ประเภทอื่น เช่น Worksheets
  • 00:04:10 ประยุกต์ใช้กับงานจริง เช่น การล้างข้อมูลหรือจัดรูปแบบ
  • 00:05:00 ทดสอบการเปลี่ยนข้อมูลและดูผลลัพธ์ที่เปลี่ยนตาม
  • 00:06:10 สรุป: For Each…Next เป็นโครงสร้างที่ช่วยให้การเข้าถึง Object เป็นรายตัวได้อย่างสะดวกและแม่นยำ

🔗 Link ที่เกี่ยวข้อง

สามารถดาวน์โหลดไฟล์ตัวอย่างได้จาก 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