2012-02-09 65 views

回答

1

要获得最高值的数字匹配,您必须遍历Issun建议找到的匹配集合。试试这个

久经考验

Sub Sample() 
    Dim strgToTest As String 
    Dim hVal As Long 

    strgToTest = "1 2 3 44 55 66 77 a b c 5 6 88" 

    Set re = New RegExp 
    re.Pattern = "\b[0-9]+\b" 
    re.Global = True 

    Set Matches = re.Execute(strgToTest) 

    If Matches.Count > 0 Then 
     For Each Match In Matches 
      If Val(Match.Value) > hVal Then hVal = Val(Match.Value) 
     Next 
     MsgBox hVal 
    Else 
     MsgBox "No Match Found" 
    End If 
End Sub 
1

我不知道你的价值最高的意思,但如果你是找回数值,只需创建通过匹配的“最大”的变量和循环,检查先前与新找出哪个更大(从值列表中获得MAX的旧时尚方式)。

+0

+1“老时尚之路”是唯一的出路据我所知:) – 2012-02-10 03:44:18

+0

还有那些做更慢,也更复杂(如创建一个数组和运行worksheetfunction.max就可以了):p – aevanko 2012-02-10 04:27:54

+0

是的,但我称之为工程:P – 2012-02-10 04:28:58