Vba: วิธีแยกข้อความระหว่างอักขระสองตัว


คุณสามารถสร้างฟังก์ชันแบบกำหนดเองต่อไปนี้ใน VBA เพื่อแยกข้อความระหว่างอักขระเฉพาะสองตัว:

 Function ExtractBetween(this_text, start_char, end_char)

StartPosition = InStr(this_text, start_char)
EndPosition = InStr(this_text, end_char)

ExtractBetween = Mid(this_text, StartPosition + 1, EndPosition - StartPosition - 1)

End Function

จากนั้นคุณสามารถใช้ฟังก์ชันนี้เพื่อแยกข้อความระหว่างอักขระสองตัวที่ระบุให้เป็นอักขระเฉพาะใน Excel

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ

ตัวอย่าง: การใช้ VBA เพื่อแยกข้อความระหว่างอักขระสองตัว

สมมติว่าเรามีชุดข้อมูลต่อไปนี้ใน Excel ซึ่งมีค่า ID และยอดขายรวมของผลิตภัณฑ์ต่างๆ ในบริษัท:

สมมติว่าเราต้องการใช้ VBA เพื่อแยกข้อความในวงเล็บสำหรับแต่ละเซลล์ในคอลัมน์ A และส่งกลับผลลัพธ์ในคอลัมน์ C

เราสามารถสร้างฟังก์ชันต่อไปนี้เพื่อทำสิ่งนี้:

 Function ExtractBetween(this_text, start_char, end_char)

StartPosition = InStr(this_text, start_char)
EndPosition = InStr(this_text, end_char)

ExtractBetween = Mid(this_text, StartPosition + 1, EndPosition - StartPosition - 1)

End Function

จากนั้นเราสามารถพิมพ์สูตรต่อไปนี้ในเซลล์ C2 เพื่อแยกข้อความในวงเล็บสำหรับข้อความในเซลล์ A2 :

 =ExtractBetween( A2 , "(", ")")

จากนั้นเราสามารถคลิกและลากสูตรนี้ไปยังแต่ละเซลล์ที่เหลือในคอลัมน์ C:

VBA แยกข้อความระหว่างอักขระเฉพาะสองตัว

ตอนนี้คอลัมน์ C จะแสดงข้อความในวงเล็บสำหรับแต่ละเซลล์ที่ตรงกันในคอลัมน์ A

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

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ โดยใช้ VBA:

VBA: วิธีนับจำนวนอักขระในสตริง
VBA: วิธีตรวจสอบว่าสตริงมีสตริงอื่นหรือไม่
VBA: วิธีนับเซลล์ด้วยข้อความเฉพาะ

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *