Excel VBA: วิธีแทนที่ข้อความในสตริง (5 วิธีที่มีประสิทธิภาพ)

  • แบ่งปันสิ่งนี้
Hugh West

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

ดาวน์โหลดสมุดงาน

แทนที่ข้อความใน String.xlsm

5 วิธีในการแทนที่ข้อความในสตริงโดยใช้ Excel VBA

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

เราใช้ เวอร์ชัน Microsoft Excel 365 ที่นี่ คุณสามารถใช้เวอร์ชันอื่นได้ตามความสะดวกของคุณ

วิธีการ-01: แทนที่ข้อความที่เริ่มต้นจากตำแหน่งที่ n ของสตริงสุ่ม

ที่นี่ เราจะแทนที่ข้อความในสตริงข้อความแบบสุ่มสำหรับตำแหน่งเริ่มต้นที่แตกต่างกัน

ขั้นตอนที่ 01 :

➤ ไปที่แท็บ นักพัฒนาซอฟต์แวร์ >> โค้ด กลุ่ม >> Visual Basic ตัวเลือก

จากนั้น Visual Basic Editor จะเปิดขึ้น

➤ ไปที่ แทรก แท็บ >> โมดูล ตัวเลือก

หลังจากนั้น โมดูล จะถูกสร้างขึ้น

ขั้นตอนที่ 02 :

➤ เขียนต่อไปนี้รหัส

9697

ที่นี่ เราได้ประกาศ full_txt_str และ updated_str เป็น String แล้วกำหนด full_txt_str ให้กับข้อความแบบสุ่ม string- “ร้อยคัน ห้าสิบคัน สิบคัน” จากนั้น VBA ฟังก์ชัน REPLACE จะถูกใช้เพื่อแทนที่ รถยนต์ ส่วนหนึ่งของสตริงสุ่มนี้ด้วย จักรยาน<10 และ 1 ถูกใช้ที่นี่เพื่อเริ่มการแทนที่จากตำแหน่ง 1 ของสตริงนี้ สุดท้าย เราได้กำหนดสตริงข้อความใหม่นี้ให้กับ updated_str และด้วยกล่องข้อความ ( MsgBox ) เราจะเห็นผลลัพธ์

➤ กด F5 .

จากนั้น กล่องข้อความ จะปรากฏขึ้นพร้อมกับสตริงข้อความใหม่ที่มีข้อความแทนที่ จักรยาน .

➤ หากต้องการดำเนินการเปลี่ยนจากอินสแตนซ์ที่สองของ รถยนต์ ใช้รหัสต่อไปนี้

2674

ในที่นี้ เราใช้ตำแหน่งเริ่มต้นเป็น 14 เนื่องจากเราต้องการให้ส่วนของสตริงอยู่หลัง Hundred Cars และแทนที่ <1 รถยนต์ ที่นี่

➤ หลังจาก รัน รหัส เราจะมี กล่องข้อความต่อไปนี้ ด้วย สตริงข้อความ เริ่มต้นจากข้อความ ห้าสิบ และด้วย จักรยาน ในตำแหน่ง รถยนต์ .

➤ สำหรับการมีเพียงส่วนสุดท้ายของสตริงนี้ เราจึงใช้โค้ดต่อไปนี้

8671

ที่นี่ เราใช้ตำแหน่งเริ่มต้นเป็น 25 เนื่องจากเราต้องการให้ส่วนของสตริงต่อจาก Fifty Cars และแทนที่ Cars ด้วย Bicycles ที่นี่

สุดท้าย เราจะมี กล่องข้อความ พร้อมกับส่วนที่ต้องการของสตริงที่มีการแทนที่ด้วย จักรยาน .

อ่านเพิ่มเติม: Excel VBA: แทนที่อักขระในสตริงตามตำแหน่ง (4 วิธีที่มีประสิทธิภาพ)

วิธีการ-02: แทนที่ข้อความสำหรับการเกิดขึ้นครั้งที่ n ของสตริงสุ่มโดยใช้ Excel VBA

ในส่วนนี้ เราจะแทนที่ข้อความในสตริงสุ่มสำหรับจำนวนเหตุการณ์ต่างๆ ที่เกิดขึ้นด้วยความช่วยเหลือ ของ VBA โค้ด

ขั้นตอน :

➤ ทำตาม ขั้นตอนที่-01 ของ วิธีการ-1 .

➤ พิมพ์โค้ดต่อไปนี้

6294

ที่นี่ เราได้ประกาศ full_txt_str และ updated_str เป็น String จากนั้นกำหนด full_txt_str ให้กับสตริงข้อความแบบสุ่ม- “Hundred Cars Fifty Cars Ten Cars” หลังจากนั้น ฟังก์ชัน REPLACE จะถูกใช้เพื่อแทนที่ รถยนต์ ส่วนหนึ่งของสตริงสุ่มนี้ด้วย จักรยาน , 1 ถูกใช้ที่นี่เพื่อเริ่มการแทนที่จากตำแหน่ง 1 ของสตริงนี้ และสุดท้าย 1 คือ สำหรับการนับจำนวนครั้ง โดยใช้ 1 เป็นจำนวนนับ เรากำลังกำหนดการเปลี่ยนรถยนต์ คันแรก เท่านั้น สุดท้าย เราได้กำหนดสตริงข้อความใหม่นี้เป็น updated_str และด้วย aกล่องข้อความ ( MsgBox ) เราจะเห็นผลลัพธ์

➤ กด F5 .

หลังจากนั้น กล่องข้อความ จะปรากฏขึ้นพร้อมกับข้อความใหม่ จักรยาน ใน ตำแหน่งแรก ของ รถยนต์ เท่านั้น

➤ สำหรับการแทนที่สองตัวอย่างแรกของ รถยนต์ ด้วย จักรยาน ใช้รหัสต่อไปนี้

6417

ที่นี่ 2 ใช้เป็นจำนวนนับเพื่อแทนที่สองรายการแรกของ รถยนต์ กับ จักรยาน .

หลังจากเรียกใช้โค้ด คุณจะต้องแทนที่ข้อความสองข้อความแรก รถยนต์ กับ จักรยาน .

➤ ใช้รหัสต่อไปนี้เพื่อแทนที่อินสแตนซ์ทั้งหมด ของข้อความ รถยนต์ .

3158

ที่นี่ อาร์กิวเมนต์สุดท้ายของฟังก์ชัน REPLACE คือ 3 ซึ่งก็คือ นับจำนวนที่ระบุการเปลี่ยน รถยนต์ ทั้งหมดด้วย จักรยาน ในสตริงข้อความ

➤ กด F5 .

หลังจากนั้น เราจะ มี กล่องข้อความ ต่อไปนี้ โดยมีข้อความแทนที่ จักรยาน ในสตริง

การอ่านที่คล้ายกัน

  • วิธีแทนที่ข้อความด้วยการขึ้นบรรทัดใหม่ใน Excel (4 วิธีที่ราบรื่น)
  • Excel VBA: วิธีค้นหาและ แทนที่ข้อความในเอกสาร Word
  • วิธีแทนที่ข้อความหลังจากอักขระเฉพาะใน Excel (3 วิธี)
  • แทนที่ข้อความของเซลล์ตามเงื่อนไขใน Excel (5 วิธีง่ายๆ)

วิธีที่ 03: แทนที่ข้อความในสตริงสุ่มด้วย InputBox

ที่นี่ เราจะแทนที่ข้อความบางข้อความของ สตริงสุ่มที่มีข้อความซึ่งจะกำหนดโดยผู้ใช้ด้วยความช่วยเหลือของ ฟังก์ชัน VBA InputBox .

ขั้นตอน :<3

➤ ทำตาม ขั้นตอนที่-01 ของ วิธีที่ 1 .

➤ พิมพ์โค้ดต่อไปนี้

6643

ที่นี่ เราได้ประกาศ full_txt_str , new_txt และ updated_str เป็น String จากนั้นกำหนด full_txt_str ให้กับสตริงข้อความแบบสุ่ม- “ร้อยคัน ห้าสิบคัน สิบคัน” . เพื่อให้อินพุตที่ผู้ใช้กำหนดเป็นข้อความที่จะแทนที่ด้วย รถยนต์ ในสตริงสุ่ม เราได้ใช้ ฟังก์ชัน InputBox แล้วกำหนดค่านี้ เป็น new_txt จากนั้น ฟังก์ชัน REPLACE จะถูกใช้เพื่อแทนที่ส่วน รถยนต์ ของสตริงสุ่มนี้ด้วย new_txt สุดท้าย เราได้กำหนดสตริงข้อความใหม่นี้ให้กับ updated_str และด้วยกล่องข้อความ ( MsgBox ) เราจะเห็นผลลัพธ์

➤ กด F5 .

หลังจากนั้น กล่องใส่ข้อมูล จะปรากฏขึ้นซึ่งคุณสามารถป้อนส่วนข้อความที่คุณต้องการให้มีในสตริงใหม่

➤ พิมพ์ จักรยาน หรือข้อความอื่นๆ ที่คุณต้องการ จากนั้นกด ตกลง .

สุดท้าย คุณจะ มีผลลัพธ์ต่อไปนี้พร้อมสตริงข้อความใหม่ที่มีข้อความใหม่ จักรยาน ในตำแหน่งของ รถยนต์ .

อ่านเพิ่มเติม: วิธีแทนที่ข้อความในสูตร Excel (7 วิธีง่ายๆ)

วิธีการ-04: แทนที่ข้อความในช่วงของสตริงด้วย Excel VBA

ที่นี่ เราจะแทนที่ gmail ส่วนหนึ่งของ รหัสอีเมลที่มีโดเมนในคอลัมน์ โดเมนใหม่ และเพื่อรวบรวมรหัสอีเมลใหม่ เราได้แทรกคอลัมน์ใหม่ รหัสอีเมลสุดท้าย .

ขั้นตอน :

➤ ติดตาม ขั้นตอนที่ 01 ของ Method-1 .

➤ พิมพ์โค้ดต่อไปนี้

3323

ที่นี่ เราใช้ FOR loop เพื่อดำเนินการจาก แถว 4 ถึง แถว 13 ด้วยความช่วยเหลือของคำสั่ง IF-THEN เราได้ตรวจสอบว่ารหัสอีเมลของ คอลัมน์ D มี “gmail” <10 หรือไม่ และเพื่อให้เป็นไปตามเกณฑ์นี้ “gmail” ส่วนของรหัสอีเมลจะถูกแทนที่ด้วยโดเมนใหม่ของ คอลัมน์ E เพื่อสร้างรหัสใหม่ใน คอลัมน์ F มิฉะนั้น คุณจะมีช่องว่างในเซลล์ที่เกี่ยวข้องของ คอลัมน์ F .

➤ กด F5

จากนั้น คุณจะมีรหัสอีเมลใหม่ในคอลัมน์ รหัสอีเมลสุดท้าย

อ่านเพิ่มเติม: Excel VBA เพื่อค้นหาและแทนที่ข้อความในคอลัมน์ (2 ตัวอย่าง)

วิธีการที่ 05: แทนที่ข้อความในช่วงของสตริงด้วยการป้อนข้อมูลของผู้ใช้เพื่อค้นหาข้อความ

คุณสามารถแทนที่ ต่อไปนี้รหัสอีเมลด้วยโดเมนใหม่และประกาศสิ่งที่จะแทนที่ใน id ก่อนหน้า ข้อมูลที่ผู้ใช้สามารถใช้ได้โดยทำตามวิธีนี้

ขั้นตอน :

➤ ทำตาม ขั้นตอนที่-01 ของ วิธีการ-1 .

➤ พิมพ์โค้ดต่อไปนี้

4964

ที่นี่ เราได้กำหนด partial_text เป็น String จากนั้นกำหนดให้เป็นสตริงที่ผู้ใช้กำหนดผ่าน Input Box .

หลังจากนั้น เราใช้ FOR วนซ้ำ เพื่อดำเนินการจาก แถวที่ 4 ถึง แถวที่ 13 และใช้ คำสั่ง IF-THEN เราตรวจสอบว่ารหัสอีเมลของ คอลัมน์ D มี “gmail” หรือ ไม่. และเพื่อให้เป็นไปตามเกณฑ์นี้ “gmail” ส่วนของรหัสอีเมลจะถูกแทนที่ด้วยโดเมนใหม่ของ คอลัมน์ E เพื่อสร้าง รหัสใหม่ใน คอลัมน์ F มิฉะนั้น คุณจะมีช่องว่างในเซลล์ที่เกี่ยวข้องของ คอลัมน์ F .

➤ กด F5 .

หลังจากนั้น คุณจะมี ช่องป้อนข้อมูล ซึ่งคุณจะต้องพิมพ์ข้อความที่คุณต้องการค้นหาในช่วงของรหัสอีเมล (เรามี ป้อน gmail ) จากนั้นกด ตกลง .

สุดท้าย เรากำลังมีรหัสอีเมลที่อัปเดตแล้วใน สุดท้าย รหัสอีเมล คอลัมน์

อ่านเพิ่มเติม: ค้นหาและแทนที่ข้อความในช่วงด้วย Excel VBA (มาโครและฟอร์มผู้ใช้)

ส่วนการปฏิบัติ

สำหรับทำแบบฝึกโดยด้วยตัวคุณเอง เราได้จัดเตรียมส่วน แบบฝึกหัด ดังด้านล่างในชีตที่ชื่อว่า แบบฝึกหัด โปรดดำเนินการด้วยตัวเอง

สรุป

ในบทความนี้ เราพยายามครอบคลุมวิธีการแทนที่ข้อความในสตริงโดยใช้ Excel VBA . หวังว่าคุณจะพบว่ามีประโยชน์ หากคุณมีข้อเสนอแนะหรือคำถามใดๆ โปรดแบ่งปันในส่วนความคิดเห็น

Hugh West เป็นผู้ฝึกอบรมและนักวิเคราะห์ Excel ที่มีประสบการณ์สูงและมีประสบการณ์มากกว่า 10 ปีในอุตสาหกรรมนี้ เขาสำเร็จการศึกษาระดับปริญญาตรีสาขาการบัญชีและการเงิน และปริญญาโทสาขาบริหารธุรกิจ Hugh มีความหลงใหลในการสอนและได้พัฒนาแนวทางการสอนที่เป็นเอกลักษณ์ซึ่งง่ายต่อการติดตามและเข้าใจ ความรู้ความเชี่ยวชาญของเขาเกี่ยวกับ Excel ช่วยให้นักเรียนและผู้เชี่ยวชาญหลายพันคนทั่วโลกพัฒนาทักษะและความเป็นเลิศในอาชีพการงาน ฮิวจ์แบ่งปันความรู้ของเขากับคนทั้งโลกผ่านบล็อก โดยเสนอบทช่วยสอน Excel ฟรีและการฝึกอบรมออนไลน์เพื่อช่วยให้บุคคลและธุรกิจบรรลุศักยภาพสูงสุดของตนเอง