Bạn dùng hàm tự tạo nhéEm có một chuỗi text thế này: Côn thu kích thước: 800x500/600x500/L500. Em muốn lọc và trả về giá trị sô lớn nhất trong chuỗi text trên. Anh chị biết cách nào làm được việc đó chỉ em với! (giá trị trả về ở đây là: 800)
Function MaxStr(Str As String)
Dim Tmp As Double
With CreateObject("Vbscript.RegExp")
.Global = True
.Pattern = "\d+"
For Each Match In .Execute(Str)
If CLng(Match) > Tmp Then Tmp = CLng(Match)
Next
End With
MaxStr = Tmp
End Function
Em có một chuỗi text thế này: Côn thu kích thước: 800x500/600x500/L500. Em muốn lọc và trả về giá trị sô lớn nhất trong chuỗi text trên. Anh chị biết cách nào làm được việc đó chỉ em với! (giá trị trả về ở đây là: 800)
Function MaxSpec(ByVal Text As String) As Double
Dim Tmp As String
On Error Resume Next
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "\D"
Tmp = WorksheetFunction.Trim(.Replace(Text, " "))
End With
Tmp = "{" & Tmp & "}"
Tmp = Replace(Tmp, " ", ",")
Tmp = "MAX(1*" & Tmp & ")"
MaxSpec = Evaluate(Tmp)
End Function
Bạn đăng bài vào box lập trình chắc muốn giải pháp dùng VBA?
Làm đại cái xem sao:
Em làm đucợ rồi. Cảm ơn thầy!Mã:Function MaxSpec(ByVal Text As String) As Double Dim Tmp As String On Error Resume Next With CreateObject("VBScript.RegExp") .Global = True .Pattern = "\D" Tmp = WorksheetFunction.Trim(.Replace(Text, " ")) End With Tmp = "{" & Tmp & "}" Tmp = Replace(Tmp, " ", ",") Tmp = "MAX(1*" & Tmp & ")" MaxSpec = Evaluate(Tmp) End Function