การทวนซ้ำตามจำนวนข้อมูล

 

For Each element In group
    [statements]
    [Exit For]
    [statements]
Next [element]

  • element เป็นตัวแปรที่เรากำหนดให้แทนแต่ละส่วนของ group โดยจะตั้งชื่อตัวแปรนี้เป็นคำว่าอะไรก็ได้
  • group เป็นกลุ่มของ Object เช่น พื้นที่ตารางที่มีหลายเซลล์ หรือแฟ้มที่มีหลายชีท

ตัวอย่าง

ต้องการปรับค่าในตารางที่ตั้งชื่อว่า Source ถ้าเซลล์ใดในตารางนี้ มีค่าน้อยกว่า 0 ให้ปรับค่าให้เป็น 0

For Each c In [Source]
    c.Select
    If c.Value < 0 Then c.Value = 0
Next c

c เป็นตัวแปรที่เราตั้งขึ้นเพื่อใช้แทน แต่ละเซลล์ในตารางที่มีชื่อว่า Source

การทวนซ้ำจนสมบูรณ์ตามเงื่อนไข

โครงสร้างรหัสซึ่งสามารถนำมาใช้ทำงานทวนซ้ำจนเงื่อนไขสมบูรณ์มีหลายแบบ เช่น

Do [{While | Until} condition]
    [statements]
    [Exit Do]
    [statements]
Loop

หรือ

Do
    [statements]
    [Exit Do]
    [statements]
Loop [{While | Until} condition]

ตัวอย่าง

ต้องการปรับเพิ่มค่าของเลขที่บันทึกไว้ใน column โดยให้ทำงานเฉพาะพื้นที่เซลล์ที่ที่มีค่าบันทึกไว้ เป็นตารางติดต่อกันไปเริ่มจากเซลล์ A1

Range("A1").Select
Do Until Selection.Value = ""
    Selection.Value = Selection.Value + 1
    Selection.Offset(1, 0).Select
Loop

  • Do Until Selection.Value = ""
    สั่งให้ทวนซ้ำไปจนกว่าจะพบว่าเซลล์เป็นช่องว่าง
  • Selection.Value = Selection.Value + 1
    ปรับค่าในเซลล์ที่เลือกให้มีค่าเพิ่มอีก 1
  • Selection.Offset(1, 0).Select
    เลือกเซลล์ row ถัดไปข้างล่าง ใน column เดิม
  • ถ้าใช้ Do While Selection.Value <> ""
    สั่งให้ทวนซ้ำไปเรื่อยๆ ตราบใดที่เซลล์ที่เลือกไม่เป็นเซลล์ว่าง

นอกจากนี้ยังมีรหัสแบบ While...Wend แต่ไม่แนะนำให้ใช้ เพราะไม่ยืดหยุ่นเท่า Do...Loop


Related Articles

© Copyright 1999

สงวนลิขสิทธิ์ตามกฎหมาย

ห้ามนำข้อความหรือส่วนหนึ่งส่วนใดของบทความหรือวิดีโอหรือรูปภาพไปใช้เพื่อการค้าขาย หรือเพื่อประโยชน์ส่วนตัว

อนญาตให้นำไปใช้เพื่อสาธารณประโยชน์โดยขอให้ระบุที่มาและชื่อผู้เขียนกำกับไว้ด้วยเสมอ

ลิงก์เว็บ Excel Expert Training

เว็บสำหรับ เรียนออนไลน์

เว็บสำหรับ เรียนแบบกลุ่ม-ส่วนตัว

ติดตามข่าวสารได้จาก facebook

ถามปัญหาได้ที่ กลุ่มคนรัก Excel

และไลน์กลุ่ม Excel Expert Group

ที่อยู่และการติดต่อ

สมเกียรติ ฟุ้งเกียรติ 7/1 รามคำแหง ซอย 35 หัวหมาก บางกะปิ กทม 10240 โทร 097-140-5555, 02-718-9331

Excel@ExcelExpertTraining.com

sfk234x234