กระทู้เก่าบอร์ด อ.Yeadram
2,659 5
URL.หัวข้อ /
URL
การตัดคำในข้อความ
ตัวอย่าง
Field_1
ABC1234
D456789
EFGH12
4567
ต้องการให้มีการตัดคำเป็น 2 Field ดังนี้
Field_1 Field_2
ABC 1234
D 456789
EFGH 12
4567
ต้องทำยังไงครับ
ขอบคุณครับ
Field_1
ABC1234
D456789
EFGH12
4567
ต้องการให้มีการตัดคำเป็น 2 Field ดังนี้
Field_1 Field_2
ABC 1234
D 456789
EFGH 12
4567
ต้องทำยังไงครับ
ขอบคุณครับ
5 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R08767
เรียน คุณ yeadram ผมลองทำในคิวรีีแล้วผลที่ได้
Field_1 test : IsNumeric([field_1])
ABC1234 0
D456789 0
EFGH12 0
4567 -1
ไม่ทราบผมทำผิดตรงส่วนไหน ต้องแก้ไขอย่างไรครับ
ขอบคุณครับ
Field_1 test : IsNumeric([field_1])
ABC1234 0
D456789 0
EFGH12 0
4567 -1
ไม่ทราบผมทำผิดตรงส่วนไหน ต้องแก้ไขอย่างไรครับ
ขอบคุณครับ
3 @R08770
ลองดูอันนี้ครับ ผมลองแล้วได้
Function Split(Val1 As String)
Dim Chk As String, ChkTxt As String, ChkNum As String
ChkTxt = ""
ChkNum = ""
For i = 1 To Len(Val1) - 1
Chk = Mid(Val1, i, 1)
If IsNumeric(Chk) Then
'µÑÇàÅ¢
ChkNum = ChkNum & Chk
Else
If Len(Trim(Chk)) > 0 Then ChkTxt = ChkTxt & Chk
End If
Next
MsgBox "Text = " & ChkTxt & vbCrLf & "Num = " & ChkNum
End Function
Function Split(Val1 As String)
Dim Chk As String, ChkTxt As String, ChkNum As String
ChkTxt = ""
ChkNum = ""
For i = 1 To Len(Val1) - 1
Chk = Mid(Val1, i, 1)
If IsNumeric(Chk) Then
'µÑÇàÅ¢
ChkNum = ChkNum & Chk
Else
If Len(Trim(Chk)) > 0 Then ChkTxt = ChkTxt & Chk
End If
Next
MsgBox "Text = " & ChkTxt & vbCrLf & "Num = " & ChkNum
End Function
4 @R08771
ไม่ทราบ Function ดังกล่าวต้องนำไปวางที่ไหนครับ
5 @R08772
ใน vba ครับ (กด alt+f11)
Time: 0.3372s
- ต้องการแยกตัวอักษร ออกจากตัวเลข
- ถ้าสายอักขระใด มีตัวอักษรอยู่ พวกมันจะอยู่ด้านหน้าเสมอ
- กลุ่มตัวอักษรจะอยู่ติดกันเสมอ ในระหว่างพวกมันจะไม่มี ตัวเลขมาแทรกคั่น
- กลุ่มตัวเลขก็เช่นกัน ถ้ามีหลายตัว พวกมันจะอยู่ติดกันเสมอ ไม่มีตัวอักษรมาแทรกคั่น
- กลุ่มตัวเลขจะอยู่ทางด้านหลังเสมอ หลังกลุ่มตัวเลข จะไม่มีตัวอักษรใดๆ อีกเลย
งั้นก็ต้องสร้างเป็นฟังก์ชั่นขึ้นมาเอง แล้วเรียกใช้ผ่านคิวรี่
ลักษณะลำดับการทำงานของฟังก์ชั่นก็คือ
- วนลูปตั้งแต่ตัวอักขระตัวแรกไปจนตัวสุดท้าย
- เพื่อดูว่า ตัวอักขระตำแหน่งใดเป็นตัวเลข Isnumeric()
- เมื่อได้ตำแหน่งมาแล้วก็ค่อยมาแยกสายอักขระออกจากกัน โดย
ถ้าอยากได้ชุดหน้า ให้ใช้ left(... , ตำแหน่งที่หาได้ ลบด้วย 1)
ถ้าอยากได้ชุดหลังให้ใช้ mid(... , ตำแหน่งที่หาได้)