VuVanHao
Thành viên thường trực




- Tham gia
- 20/6/18
- Bài viết
- 246
- Được thích
- 118
Bạn thử xem với Function sauEm có vấn đề như sau, xin nhờ mọi người trong diễn đàn trợ giúp ạ. Em cảm ơn ạ.
Chuỗi cần tách: [A1]Abelmoschi Corolla 黄 蜀 葵 花 306
Sau khi tách:
B1: Abelmoschi Corolla
C1: 黄 蜀 葵 花
D1: 306
Function ReGexChuoi(aChuoi As String, regexPattern As String) As String
Dim regExs As Object, Matches As Object, aKetQua As Variant, i As Long
Set regExs = CreateObject("vbscript.regexp")
With regExs
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = regexPattern
End With
If regExs.Test(aChuoi) Then
Set Matches = regExs.Execute(aChuoi)
ReDim aKetQua(0 To Matches.Count)
For i = 0 To Matches.Count - 1
aKetQua(i) = Matches.Item(i)
Next i
ReGexChuoi = Join(aKetQua, " ")
Else
ReGexChuoi = "Không co k" & ChrW(7871) & "t qu" & ChrW(7843)
End If
End Function
Hi hi chịBạn thử xem với Function sau
Mã:Function ReGexChuoi(aChuoi As String, regexPattern As String) As String Dim regExs As Object, Matches As Object, aKetQua As Variant, i As Long Set regExs = CreateObject("vbscript.regexp") With regExs .Global = True .MultiLine = True .IgnoreCase = False .Pattern = regexPattern End With If regExs.Test(aChuoi) Then Set Matches = regExs.Execute(aChuoi) ReDim aKetQua(0 To Matches.Count) For i = 0 To Matches.Count - 1 aKetQua(i) = Matches.Item(i) Next i ReGexChuoi = Join(aKetQua, " ") Else ReGexChuoi = "Không co k" & ChrW(7871) & "t qu" & ChrW(7843) End If End Function
Mình mới tập tành thôi ! vẫn còn phải học rất nhiều !
Góp ý cho bạn:Em có một list khoảng 2000 dòng có giá trị bất kì. Em đang muốn tách 2000 dòng này thành các dòng khác nhau, trong đó các dòng phải thoả mãn:
- Số lượng kí tự trong 1 ô tối đa là 70 kí tự
- Phải tách thành các ô có nghĩa (VD: Không được tách đôi chữ Nguyễn thành Ngu và yễn thành 2 dòng khác nhau)
- Làm cách nào để có giá trị tương ứng ở cột A với các dòng đã tách ra (VD dòng 2 sau khi tách thì được 3 dòng là 3,4,5 thì cách ô A3, A4, A5 đều có giá trị là ô A2 gốc)
Em cảm ơn mọi người ạ
....................................................
Mọi người cho em hỏi thêm câu nữa ạ, là hàm find có cách nào tìm từ vị trí của một kí tự từ 1 điểm ngược lại đầu không ạ.
Ví dụ: Em muốn tìm từ vị trí 6 về vị trí 1 của đoạn text vị trí của dấu cách đầu tiên xuất hiện.
Em cảm ơn mn ạ
@bao1296 Bạn lên nói rõ và có file demo kiểu: Chuỗi cần tách, điều kiện, kết quả sau đó.
- Số lượng kí tự trong 1 ô tối đa là 70 kí tự
- Phải tách thành các ô có nghĩa (VD: Không được tách đôi chữ Nguyễn thành Ngu và yễn thành 2 dòng khác nhau)
Trường hợp đến 70 ký tự mà nó không có nghĩa thì chọn điều kiện nào?