Do until Loop ใน VBA Excel คืออะไร?
ในVBA Do until Loopเราต้องกำหนดเกณฑ์หลังจากคำสั่ง until ซึ่งหมายถึงเมื่อเราต้องการให้ลูปหยุดและคำสั่งสิ้นสุดคือลูปนั่นเอง ดังนั้นหากเงื่อนไขเป็น FALSE มันจะดำเนินการคำสั่งภายในลูปต่อไป แต่ถ้าเงื่อนไขเป็น TRUE ทันทีมันจะออกจากคำสั่ง Do Until
ตามคำพูดที่บอกว่าให้ทำงานบางอย่างจนกว่าจะถึงเกณฑ์ให้ทำจนกว่าลูปจะถูกใช้ในภาษาโปรแกรมเกือบทั้งหมดใน VBA บางครั้งเราก็ใช้ Do until loop Do Until Loop หมายถึงการทำบางสิ่งบางอย่างจนกว่าเงื่อนไขจะกลายเป็น TRUE มันเหมือนกับฟังก์ชันตรรกะที่ทำงานบนพื้นฐานของ TRUE หรือ FALSE
นี่คือสิ่งที่ตรงกันข้ามกับ Do While ลูปโดยที่ Do while รันลูปตราบเท่าที่เงื่อนไขเป็น TRUE
ไวยากรณ์
Do until loop มีไวยากรณ์สองประเภท
ไวยากรณ์ # 1
ทำจนกว่า [เงื่อนไข] [ดำเนินการบางอย่าง] วนซ้ำ
ไวยากรณ์ # 2
ทำ [ดำเนินการบางอย่าง] วนซ้ำจนกว่า [เงื่อนไข]
ทั้งสองดูคล้ายกันมากและมีความแตกต่างง่ายๆอยู่ที่นั่น
ในไวยากรณ์แรกลูป“ Do until” ตรวจสอบเงื่อนไขก่อนและรับผลลัพธ์เงื่อนไขเป็น TRUE หรือ FALSE หากเงื่อนไขเป็น FALSE มันจะรันโค้ดและทำงานที่ระบุและหากเงื่อนไขเป็น TRUE ก็จะออกจากลูป
ในไวยากรณ์ที่สอง "Do" ลูปประการแรกมันจะดำเนินการงาน cod จากนั้นจะทดสอบว่าเงื่อนไขเป็นจริงหรือเท็จ หากเงื่อนไขเป็น FALSE ระบบจะย้อนกลับและทำงานเดิมอีกครั้ง ถ้าเงื่อนไขเป็นจริงมันจะออกจากลูปทันที
ตัวอย่าง
ฉันรู้ว่ามันไม่ใช่เรื่องง่ายที่จะเข้าใจอะไรในส่วนของทฤษฎี แต่ไม่มีอะไรต้องกังวล เราจะยกตัวอย่างง่ายๆเพื่อทำความเข้าใจลูป อ่านต่อ. ในการเริ่มต้นการเรียนรู้ให้ดำเนินการแทรกหมายเลขซีเรียล 10 ตัวแรกจากเซลล์ A1 ถึง A10
คุณสามารถดาวน์โหลดเทมเพลต VBA Do Until Excel ได้ที่นี่ - VBA Do until Excel Templateทำตามขั้นตอนด้านล่างเพื่อใช้ลูป“ Do until”
ขั้นตอนที่ 1:สร้างชื่อมาโครก่อนเพื่อเริ่มกระบวนการย่อย
รหัส:
ย่อย Do_Until_Example1 () End Sub
ขั้นตอนที่ 2:กำหนดตัวแปรเป็น“ Long” ฉันได้กำหนด“ x” เป็นประเภทข้อมูลแบบยาว
Dim x As Long
ขั้นตอนที่ 3:ตอนนี้ป้อนคำว่า“ Do until”
ทำจนกว่า
ขั้นตอนที่ 4:หลังจากเริ่มต้นชื่อลูปให้ป้อนเงื่อนไขเป็น“ x = 11”
ทำจนถึง x = 11
x = 11 คือการทดสอบเชิงตรรกะที่เรานำไปใช้ บรรทัดนี้บอกว่าให้รันลูปจนกว่า x จะเท่ากับ 11
ขั้นตอนที่ 5:ใช้คุณสมบัติ CELLS และใส่หมายเลขซีเรียลตั้งแต่ 1 ถึง 10
เซลล์ (x, 1) .Value = x
หมายเหตุ: ในที่นี้เราได้กล่าวถึง“ x” เริ่มจาก 1 ดังนั้นค่า x ตัวแรกจึงเท่ากับ 1 ที่ใดก็ตามที่“ x” จะมีค่าเท่ากับ 1
ขั้นตอนที่ 6:ปิดลูปตอนนี้โดยป้อนคำว่า“ LOOP”
Sub Do_Until_Example1 () Dim x As Long Do until x = 11 Cells (x, 1) .Value = x Loop
End Sub
โอเคเราทำส่วนการเข้ารหัสเสร็จแล้วตอนนี้เราจะทดสอบโค้ดทีละบรรทัดเพื่อทำความเข้าใจลูปให้ดีขึ้น
ในการรันบรรทัดตามรหัสบรรทัดก่อนอื่นให้กดปุ่ม F8
ขั้นแรกจะเน้นชื่อมาโครด้วยสีเหลือง
เมื่อคุณเห็นเส้นสีเหลืองจะมีข้อความระบุว่าไม่ได้ดำเนินการโดยกำลังจะดำเนินการหากคุณกดปุ่ม F8 อีกครั้ง
ตอนนี้กดปุ่ม F8 อีกครั้งเส้นสีเหลืองจะไปที่ Do until Loop
ตอนนี้เพื่อทำความเข้าใจเกี่ยวกับลูปให้วางเคอร์เซอร์ไว้ที่ตัวแปร“ x” และดูค่าของตัวแปร“ x”
ดังนั้น x = 0 เนื่องจากเส้นที่ไฮไลต์เป็นบรรทัดแรกในลูปดังนั้นค่าของ“ x” จึงเป็นศูนย์ดังนั้นให้กดปุ่ม F8 อีกครั้งและดูค่าของ“ x” ก่อนออกจากนั้นโค้ดจะทำงานและกำหนดค่าให้“ x” เป็น 1
ตอนนี้เริ่มการทำงานของลูปอีกครั้งโดยกดปุ่ม F8 ดูค่าของ“ x”
ตอนนี้ค่าของ“ x” แสดงเป็น 1 เพื่อให้มีค่าที่เพิ่มขึ้นให้กับตัวแปร“ x” เราจำเป็นต้องกำหนดค่าของตัวแปร“ x” ใหม่เป็น x = x + 1 ภายในลูป
ตอนนี้กดปุ่ม F8 อีกครั้งและเราควรได้รับค่า 1 ในเซลล์ A1
ตอนนี้กดปุ่ม F8 อีกครั้งและดูว่าค่าของ“ x” คืออะไร
ค่าของตัวแปร“ x” คือ 2 ในขณะนี้ เงื่อนไขของเราบอกว่าให้รันลูปจนกว่าเงื่อนไขจะกลายเป็น TRUE ดังนั้นลูปของเราจะยังคงทำงานต่อไปจนกว่าค่าของ“ x” จะกลายเป็น 11
กด F8 อีกครั้งมันจะข้ามกลับไปที่เส้นลูป“ Do until”
กด F8 อีกสองครั้งเราจะได้ค่า 2 ในเซลล์ A2
กดปุ่ม F8 อีกครั้งค่าของ“ x” จะกลายเป็น 3 ในตอนนี้
กดปุ่ม F8 อีกครั้งมันจะกลับไปที่ลูปอีกครั้ง
เช่นนี้ลูปนี้จะดำเนินการต่อไปเรื่อย ๆ จนกว่าค่าของ“ x” จะกลายเป็น 11 ตอนนี้ฉันได้ดำเนินการลูปจนค่า“ x” กลายเป็น 11
ตอนนี้ถ้าฉันกด F8 มันจะยังคงกลับไปที่ลูป
แต่ถ้าฉันกดแป้น F8 ตอนนี้มันจะออกจากลูปเพราะเงื่อนไขที่ใช้กลายเป็น“ TRUE” คือ x = 11
ตอนนี้เรามีหมายเลขซีเรียลตั้งแต่ 1 ถึง 10 ในแผ่นงาน excel
ดังนั้นนี่คือแนวคิดพื้นฐานของลูป“ ทำจนกว่า” หากต้องการทำความเข้าใจเกี่ยวกับลูปใด ๆ คุณต้องรันโค้ดทีละบรรทัดจนกว่าคุณจะได้รับความรู้ทั้งหมดเกี่ยวกับลูป