Vba: วิธีแยกสตริงตามตัวคั่นหลายตัว
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อแยกสตริงตามตัวคั่นหลายตัวใน VBA:
SubSplitString ()
Dim SingleValue() As String
Dim i As Integer
Dim j As Integer
For i = 2 To 7
newString = Replace(Range(" A " & i), " - ", " ")
SingleValue = Split(newString, " ")
For j = 1 To 3
Cells(i, j + 1).Value = SingleValue(j - 1)
Next j
Next i
End Sub
ตัวอย่างนี้จะแบ่งแต่ละสตริงในช่วง A2:A7 ตามเครื่องหมายยัติภังค์หรือช่องว่างในแต่ละสตริง จากนั้นกำหนดองค์ประกอบผลลัพธ์ของแต่ละสตริงให้กับเซลล์ที่อยู่ติดกันในคอลัมน์ B, C และ D
หมายเหตุ : มาโครนี้จะแทนที่ยัติภังค์แต่ละตัวด้วยการเว้นวรรค จากนั้นแยกแต่ละสตริงตามตำแหน่งของช่องว่าง
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: แยกสตริงตามตัวคั่นหลายตัวใน VBA
สมมติว่าเรามีรายชื่อต่อไปนี้ใน Excel:
สมมติว่าเราต้องการแยกแต่ละชื่อตามยัติภังค์หรือช่องว่าง จากนั้นกำหนดองค์ประกอบผลลัพธ์ของแต่ละสตริงให้กับเซลล์ใหม่
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
SubSplitString ()
Dim SingleValue() As String
Dim i As Integer
Dim j As Integer
For i = 2 To 7
newString = Replace(Range(" A " & i), " - ", " ")
SingleValue = Split(newString, " ")
For j = 1 To 3
Cells(i, j + 1).Value = SingleValue(j - 1)
Next j
Next i
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
โปรดทราบว่ามาโครนี้จะแยกแต่ละสตริงในคอลัมน์ A ตามช่องว่างและยัติภังค์ และแสดงองค์ประกอบข้อความแต่ละรายการของแต่ละสตริงในคอลัมน์ B, C และ D
หมายเหตุ #1: เรากำลังแยกสตริงตามยัติภังค์และช่องว่างในตัวอย่างนี้ แต่คุณสามารถแยกสตริงตามตัวคั่นใดๆ ที่คุณต้องการโดยระบุในฟังก์ชัน แทนที่ และ แยก
หมายเหตุ #2 : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับฟังก์ชัน VBA Split ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ โดยใช้ VBA:
VBA: วิธีนับจำนวนอักขระในสตริง
VBA: วิธีตรวจสอบว่าสตริงมีสตริงอื่นหรือไม่
VBA: วิธีนับเซลล์ด้วยข้อความเฉพาะ