Blockdit Logo
Blockdit Logo (Mobile)
สำรวจ
ลงทุน
คำถาม
เข้าสู่ระบบ
มีบัญชีอยู่แล้ว?
เข้าสู่ระบบ
หรือ
ลงทะเบียน
safetybuddybb84
•
ติดตาม
18 มี.ค. 2022 เวลา 10:49 • การศึกษา
หลายครั้งที่เราต้องค้นหาคำใน Cell ที่เราต้องการภายในcolumn แล้วให้เสดงผลใน column ว่างสัก column ข้างๆ เราจะทำอย่างไร คำตอบคือ
เราจะใช้คำสั่ง Find และ Find Next ร่วมกันเพื่อต้องการวนลูป คนหา ในแต่ละรอบ ร่วมกับคำสั่งวนลูป โดยในกรณีนี้ผมจะใช้คำสั่ง Do loop while
โดย ตัว Do ก่อนเพื่อทำคำสั่งแรกไม่ว่าอย่างไรก็ตาม และทำคำสั่งต่อไปหากมีค่าเป็น จริง (True) หลังคำสั่ง loop While
เหมือนเดิมครับเราเริ่มด้วยตารางข้อมูลสมมุติกันก่อน โดยกำหนดรายการดังต่อไปนี้
ข้อมูล
สถานการณ์คือ เราต้องการแยก ผักให้แม่ และเอาขนมให้น้อง โดยเรามีข้อมูลของชื่อ ผัก และชื่อ ขนม วิธีแยกคือใช้คำว่า ผัก และคำว่าขนม และแล้วใส่สถานะ ว่า
ของแม่และของน้อง นี้คือโจทย์ในวันนี้
แล้วเราก็มาเขียนCode โดยเข้าไปที่แถบ Developer > project >workbook > insert > module แล้วไปลุยกันเลย
Code
ด้วยเรามี คำค้นหาสองคำ เราจำเป็นต้องทำสองรอบ เพื่อให้ค้นหาคำแรกก่อนแล้วค่อยค้นหาคำที่สองในรอบต่อไป เราจึงต้อง set FindRng1 , FindRng2 ตามลำดับ
Do loop while มีหน้าทีค้นหา Do โดยใช้ FirstCell1,2 ที่ได้ค่าจากคำสั่ง Find และต่อมาจึงเดิน FindNext ตราบใดที่ ค่า Address ไม่ตรงกับค่า Address ของ FirstCell1, 2
Loop while ก็จะดำเนินการไปเรื่อยๆ จนกระทั้งวนเจอค่าแรก ก็จะเด้งออก มาที่ MsgBox และแสดงpopup คำว่า “Search is over” เป็นอันสิ้นสุดกระบวนการ
Result
The end
vba
excel
บันทึก
ดูเพิ่มเติมในซีรีส์
VBA for everyone
โฆษณา
ดาวน์โหลดแอปพลิเคชัน
© 2024 Blockdit
เกี่ยวกับ
ช่วยเหลือ
คำถามที่พบบ่อย
นโยบายการโฆษณาและบูสต์โพสต์
นโยบายความเป็นส่วนตัว
แนวทางการใช้แบรนด์ Blockdit
Blockdit เพื่อธุรกิจ
ไทย