Bạn thử:các bạn giúp mình hàm này với, mình có 1 mã kh vừa có ký tự và số, bây giờ mình muốn tạo một mã mới chỉ lấy các ký tự đầu là chuỗi text không lấy sô, giúp mình với cảm ơn
View attachment 194103
Sub abc()
Dim c As Range
Application.ScreenUpdating = False
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "\d"
For Each c In Range("a2", Range("A" & Rows.Count).End(3))
c.Offset(, 1).Value = .Replace(c.Value, "")
Next
End With
Application.ScreenUpdating = True
End Sub
Bạn ơi có 1 số mã nó bị lỗi vẫn lấy luôn số nè bạn, bạn xem lại giúp mình nhé, cảm ơnNếu chỉ đơn giản như bạn ví dụ thì
B2=LEFT(A2;FIND("0";A2)-1)
bạn nên cho dữ liệu đầy đủ thì mới có giải pháp đầy đủ
bạn ơi cái này sử dụng sao vậy bạn, mình không biết sử dụng, bạn chỉ giúp mình nhé, cảm ơnBạn thử:
PHP:Sub abc() Dim c As Range Application.ScreenUpdating = False With CreateObject("VBScript.RegExp") .Global = True .Pattern = "\d" For Each c In Range("a2", Range("A" & Rows.Count).End(3)) c.Offset(, 1).Value = .Replace(c.Value, "") Next End With Application.ScreenUpdating = True End Sub
Nếu nhóm số bắt đầu là 0 thì có thể dùng find and replacecác bạn giúp mình hàm này với, mình có 1 mã kh vừa có ký tự và số, bây giờ mình muốn tạo một mã mới chỉ lấy các ký tự đầu là chuỗi text không lấy sô, giúp mình với cảm ơn
View attachment 194103
Bạn tham khảo Bài 2 của Topic này:Bạn ơi có 1 số mã nó bị lỗi vẫn lấy luôn số nè bạn, bạn xem lại giúp mình nhé, cảm ơn
Chỉnh lại thành cái này dễ dùng hơn anh ạBạn thử:
PHP:Sub abc() Dim c As Range Application.ScreenUpdating = False With CreateObject("VBScript.RegExp") .Global = True .Pattern = "\d" For Each c In Range("a2", Range("A" & Rows.Count).End(3)) c.Offset(, 1).Value = .Replace(c.Value, "") Next End With Application.ScreenUpdating = True End Sub
Function abc(ByVal c As Range)
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "\d"
abc = .Replace(c.Value, "")
End With
End Function
Thử dùng hàm này chỉ đúng như ví dụ bài 1:các bạn giúp mình hàm này với, mình có 1 mã kh vừa có ký tự và số, bây giờ mình muốn tạo một mã mới chỉ lấy các ký tự đầu là chuỗi text không lấy sô, giúp mình với cảm ơn
Thêm công thức tham khảo, công thức mảng nhé.{Ctrl+Shift+Enter}các bạn giúp mình hàm này với, mình có 1 mã kh vừa có ký tự và số, bây giờ mình muốn tạo một mã mới chỉ lấy các ký tự đầu là chuỗi text không lấy sô, giúp mình với cảm ơn
View attachment 194103
=LEFT(A2,MIN(FIND(ROW($1:$10)-1,A2&1234567890))-1)
Nếu sửa thì nên 1 đường kiếm diệt hết. Global cũng không cần vì người ta chỉ có 1 cụm chữ số liên tiếp. Nếu có nhiều cụm thì dĩ nhiên thêm Global.Chỉnh lại thành cái này dễ dùng hơn anh ạ
Diff:Function abc(ByVal c As Range) With CreateObject("VBScript.RegExp") .Global = True .Pattern = "\d" abc = .Replace(c.Value, "") End With End Function
Function abc(ByVal c As Range)
With CreateObject("VBScript.RegExp")
' .Global = True
.Pattern = "\d+"
abc = .Replace(c(1).Value, "")
End With
End Function
"Tìm một con đường, tìm một lối đi....- Đức Huy"Thêm 1 con đường khác:
=LEFT(A2,MATCH(1,(MID(A2,ROW($1:$50),1)+1)^0,)-1)
Khiếp. Anh nhà mình dạo này một bài trả lời lại kèm theo 1 câu hát"Tìm một con đường, tìm một lối đi....- Đức Huy"
Góp vui văn nghệ với anh em:
Ctrl+Shift+Enter.Mã:=LEFT(A2,MATCH(1,(MID(A2,ROW($1:$50),1)+1)^0,)-1)
hihi ^o^
Thấy các anh em trên đưa giải pháp mỗi người mỗi vẽ, đều có cái hay riêng trong mỗi cách hỗ trợ cho bạn mình.Khiếp. Anh nhà mình dạo này một bài trả lời lại kèm theo 1 câu hát![]()
Chơi thêm 1 hàm nữa, tuy dài nhưng dễ hiểu.Thấy các anh em trên đưa giải pháp mỗi người mỗi vẽ, đều có cái hay riêng trong mỗi cách hỗ trợ cho bạn mình.
Tâm trạng hưng phấn vui vẻ, muốn góp phần, hòa nhịp với anh em cùng vui!
hihi ^o^
Mấy cái này phải hỏi lại cho chắc nha. Liệu có phải người ta muốn loại toàn bộ số hay không? Ví dụ: Với P2CBS016 thì người ta muốn kết quả gì? P hay P2CBS hay PCBSChỉnh lại thành cái này dễ dùng hơn anh ạ
Diff:Function abc(ByVal c As Range) With CreateObject("VBScript.RegExp") .Global = True .Pattern = "\d" abc = .Replace(c.Value, "") End With End Function
Chủ Topic yêu cầu cái gì thì làm cái đó, nếu chưa đúng thì họ la làng lên, thì tính tiếp nếu thấy khó nhằn quá thì bỏ qua. Có khi đâu cần phải lường trước việc này, việc nọ, việc kia.Mấy cái này phải hỏi lại cho chắc nha. Liệu có phải người ta muốn loại toàn bộ số hay không? Ví dụ: Với P2CBS016 thì người ta muốn kết quả gì? P hay P2CBS hay PCBS
Theo ví dụ mà chủ topic đưa lên ở bài 1 thì không phải là xóa toàn bộ số, chỉ là lấy từ trái sang phải đến khi gặp số thì ngưng. Trong khi code VBA viết trong topic này lại không phải vậy đâu anhChủ Topic yêu cầu cái gì thì làm cái đó, nếu chưa đúng thì họ la làng lên, thì tính tiếp nếu thấy khó nhằn quá thì bỏ qua. Có khi đâu cần phải lường trước việc này, việc nọ, việc kia.
.
Theo ví dụ mà chủ topic đưa lên ở bài 1 thì không phải là xóa toàn bộ số, chỉ là lấy từ trái sang phải đến khi gặp số thì ngưng. Trong khi code VBA viết trong topic này lại không phải vậy đâu anh
Ý em muốn nói: Code VBA và công thức trong topic này cho kết quả khác nhau