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

สมมติว่าเราต้องการแยกแต่ละสตริงตามช่องว่าง จากนั้นกำหนดองค์ประกอบผลลัพธ์ของแต่ละสตริงให้กับเซลล์ใหม่
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
SubSplitString ()
Dim SplitValues() As String
Dim i As Integer
Dim j As Integer
For i = 2 To 7
SplitValues = Split(Range(" A " & i), " ")
For j = 1 To 2
Cells(i, j + 1).Value = SplitValues(j - 1)
Next j
Next i
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

โปรดทราบว่าคอลัมน์ B และ C มีชื่อและนามสกุลของแต่ละชื่อเต็มในคอลัมน์ A
โปรดทราบว่าคุณสามารถใช้ฟังก์ชัน แยก VBA เพื่อแยกอาร์เรย์ตามตัวคั่นอื่นได้
ตัวอย่างเช่น สมมติว่าเรามีรายชื่ออีเมลต่อไปนี้:

สมมติว่าเราต้องการแบ่งอีเมลแต่ละฉบับออกเป็นอาร์เรย์ตามตำแหน่งที่สัญลักษณ์ @ ปรากฏ
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
SubSplitString ()
Dim SplitValues() As String
Dim i As Integer
Dim j As Integer
For i = 2 To 7
SplitValues = Split(Range(" A " & i), " @ ")
For j = 1 To 2
Cells(i, j + 1).Value = SplitValues(j - 1)
Next j
Next i
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

ฟังก์ชัน แยก จะแยกอีเมลแต่ละฉบับในคอลัมน์ A ตามสัญลักษณ์ @ และแสดงรายการผลลัพธ์ในคอลัมน์ B และ C
หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มสำหรับฟังก์ชัน VBA Split ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ โดยใช้ VBA:
VBA: วิธีนับจำนวนอักขระในสตริง
VBA: วิธีตรวจสอบว่าสตริงมีสตริงอื่นหรือไม่
VBA: วิธีนับเซลล์ด้วยข้อความเฉพาะ