Xem bài này trước:̣Điều kiện mình viết trong File đính kèm
Cảm ơn các bạn
Function StExtract(Text As String, stType As String) As String
With CreateObject("VBScript.RegExp")
.Global = True
Select Case stType
Case "N": .Pattern = "\D"
Case "T": .Pattern = "\d"
End Select
StExtract = .Replace(Text, "")
End With
End Function
=stExtract(E13,"N")
=stExtract(E13,"T")
Theo mình, code này hơi bất tiện, nó bắt phải nhập stType ("N" & "T") đúng như trong code ( chữ hoa) thì mới chạyXem bài này trước:
http://www.giaiphapexcel.com/forum/showthread.php?16983-T%C3%A1ch-s%E1%BB%91-kh%C3%B4ng-d%C3%B9ng-v%C3%B2ng-l%E1%BA%B7p&
Chỉnh sửa lại cho bạn:
PHP:Function StExtract(Text As String, stType As String) As String With CreateObject("VBScript.RegExp") .Global = True Select Case stType Case "N": .Pattern = "\D" Case "T": .Pattern = "\d" End Select StExtract = .Replace(Text, "") End With End Function
Function TachCs(Text As String, Optional Dk As Integer)
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = IIf(Dk = 1, "\D", "\d")
TachCs = .Replace(Text, "")
End With
End Function
=tachcs(E13,1)
=tachcs(E13)
Hổng phải vô tình mà em dùng Select Case đâu (thay vì IIF)... Em muốn chắc chắn rằng chỉ có 2 trường hợp xảy ra: TEXT và NUMBER thôi, các trường hợp khác không tínhTheo mình, code này hơi bất tiện, nó bắt phải nhập stType ("N" & "T") đúng như trong code ( chữ hoa) thì mới chạy
Bạn xem file đính kèm này đây (tôi cứ tưởng bạn đã quá rành cách dùng code rồi chứ)cảm ơn ndu96081631 đã giúp,nói thật mình xem xong rồi chả hiểu gì cả...bạn giúp làm trên File mình up lên cho với.Cảm ơn bạn
Bạn bấm phím Alt+F11 -> Sau đó vào Insert Module -> Copy đoạn code trên dán vào Module vừa insert.cảm ơn ndu96081631 đã giúp,nói thật mình xem xong rồi chả hiểu gì cả...bạn giúp làm trên File mình up lên cho với.Cảm ơn bạn
=StExtract(E13,"N")
=StExtract(E13,"T")
=[COLOR=#000000][COLOR=#007700][/COLOR][COLOR=#0000BB]tachcs[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]E13[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700])
=[COLOR=#000000][COLOR=#007700][/COLOR][COLOR=#0000BB]tachcs[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]E13[/COLOR][COLOR=#007700][/COLOR][COLOR=#0000BB][/COLOR][COLOR=#007700])
Hổng phải vô tình mà em dùng Select Case đâu (thay vì IIF)... Em muốn chắc chắn rằng chỉ có 2 trường hợp xảy ra: TEXT và NUMBER thôi, các trường hợp khác không tính
Mai này chỉnh sửa lại code, có thể dùng để tách Symbol chẳng hạn (khi ấy stType sẽ là "S")
Với code của em, nếu không nhập đúng stType = "N" hoặc "T" thì nó sẽ giữ nguyên chuổi (hổng làm gì cả)
Nói chung, viết 1 hàm thì nên tính đến hướng tổng quát chứ không phải chỉ dùng được là đủ
Ẹc... Ẹc...
-------------------
Bạn xem file đính kèm này đây (tôi cứ tưởng bạn đã quá rành cách dùng code rồi chứ)
Cell D13 đã có kết quả rồi, còn lại cell B13, C13, D13 muốn tách sao thì cứ dùng các hàm xử lý chuổi thôi (như LEFT, RIGHT, MID)Các bạn cho hỏi là,nếu muốn tách số ra nhiều cột thì phải sửa lại Code hoặc hàm như thế nào,vídụ:
mình nhập vào ô E13 là:01020304khamha
thì:
Cột X13 = khamha
Cột D13 = 01020304
Cột C13 = 010203
Cột B13 = 0102
Cột A13 = 01
Cảm ơn các bạn
Bỏ cái thằng VALUE đi, chỉ LEFT thôi được rồiMình đã thử dùng hàm =VALUE(LEFT(E13,6)) nhưng không được.
kết quả:
Cột C13 = 10203 chứ không ra 010203
Cột B13 = 102 chứ không ra 0102
Cột A13 = 1 chứ không ra 01