วิธีใช้ค้นหาและแทนที่ใน vba (พร้อมตัวอย่าง)
คุณสามารถใช้วิธีการต่อไปนี้เพื่อค้นหาและแทนที่สตริงเฉพาะในช่วงโดยใช้ VBA:
วิธีที่ 1: ค้นหาและแทนที่สตริง (ไม่คำนึงถึงขนาดตัวพิมพ์)
Sub FindReplace()
Range(" A1:B10 ").Replace What:=" Mavs ", Replacement:=" Mavericks "
End Sub
มาโครนี้จะแทนที่ “Mavs” ทุกรายการด้วย “Mavericks” ในช่วง A1:B10
วิธีที่ 2: ค้นหาและแทนที่สตริง (คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่)
Sub FindReplace()
Range(" A1:B10 ").Replace What:=" Mavs ", Replacement:=" Mavericks ", MatchCase:= True
End Sub
มาโครเฉพาะนี้จะแทนที่ “Mavs” ทุกรายการด้วย “Mavericks” ในช่วง A1:B10 เฉพาะในกรณีที่ตรงกับตัวพิมพ์เท่านั้น
ตัวอย่างเช่น สตริง “mavs” จะไม่ถูกแทนที่ เนื่องจากไม่ตรงกับตัวพิมพ์ของ “Mavs” อย่างแม่นยำ
ตัวอย่างต่อไปนี้แสดงวิธีการใช้วิธีนี้ในทางปฏิบัติกับชุดข้อมูลต่อไปนี้ใน Excel:
ตัวอย่างที่ 1: ค้นหาและแทนที่สตริงโดยใช้ VBA (ไม่คำนึงถึงขนาดตัวพิมพ์)
สมมติว่าเราต้องการแทนที่ “Mavs” ทุกรายการด้วย “Mavericks” ในช่วง A1:B10
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
Sub FindReplace()
Range(" A1:B10 ").Replace What:=" Mavs ", Replacement:=" Mavericks "
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
โปรดทราบว่าทุกรายการของ “Mavs” จะถูกแทนที่ด้วยสตริง “Mavericks” ในคอลัมน์ทีม
ตัวอย่างที่ 2: ค้นหาและแทนที่สตริงโดยใช้ VBA (คำนึงถึงขนาดตัวพิมพ์)
สมมติว่าเราต้องการแทนที่ “Mavs” แต่ละรายการด้วย “Mavericks” ในช่วง A1:B10 เฉพาะในกรณีที่ตรงกับกรณี
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
Sub FindReplace()
Range(" A1:B10 ").Replace What:=" Mavs ", Replacement:=" Mavericks ", MatchCase:= True
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
โปรดทราบว่าการเปลี่ยนนี้จะ คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
ซึ่งหมายความว่าแต่ละเหตุการณ์ของ “Mavs” จะถูกแทนที่ แต่แต่ละเหตุการณ์ของ “mavs” จะถูกทิ้งไว้ตามลำพัง
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ โดยใช้ VBA:
VBA: วิธีนับจำนวนอักขระในสตริง
VBA: วิธีตรวจสอบว่าสตริงมีสตริงอื่นหรือไม่
VBA: วิธีนับเซลล์ด้วยข้อความเฉพาะ