<li><span class="l">节约了:</span><span class="r" id="saveprice"><strong>¥0.00</strong></span></li>
想读出上面的“¥0.00”,这个值是个变的数,

解决方案 »

  1.   

    用instr找到“¥”的位置,Mid截取后面的,直到发现<
      

  2.   

    +1
    补充下代码:
    Private Sub Form_Load()
    Dim s As String, TmpI As Long
    s = "<li><span class=""l"">节约了:</span><span class=""r"" id=""saveprice""><strong>¥0.00</strong></span></li>"
    TmpI = InStr(s, "节约了")
    TmpI = InStr(TmpI + 3, s, "¥")
    s = Mid(s, TmpI + 1, InStr(TmpI + 1, s, "<") - TmpI - 1)
    Me.Caption = s
    End Sub
      

  3.   

    规则简单的推荐用vb字符串处理,提供个另外的方法:
    '此代码由“正则测试工具 v1.1.33”自动生成,请直接调用TestReg过程
    Private Sub TestReg()
        Dim strData As String
        Dim reg As Object
        Dim matchs As Object, match As Object    strData = "<li><span class=""l"">节约了:</span><span class=""r"" id=""saveprice""><strong>¥0.00</strong></span>< /li>"    Set reg = CreateObject("vbscript.regExp")
        reg.IgnoreCase = True
        reg.Pattern = "id=""saveprice""><strong>(.+?)</strong>"
        Set matchs = reg.Execute(strData)
        For Each match In matchs
            Debug.Print match.SubMatches(0)
        Next
    End Sub
    由于可能多处有¥,所以需要带上id="saveprice"来判断,这样应该就唯一了。
      

  4.   

    简化下:
    Private Sub Form_Load()
        Dim reg As Object
        Dim matchs As Object
        Set reg = CreateObject("vbscript.regExp")
        reg.IgnoreCase = True
        reg.Pattern = "id=""saveprice""><strong>(.+?)</strong>"
        Set matchs = reg.Execute("<li><span class=""l"">节约了:</span><span class=""r"" id=""saveprice""><strong>¥0.00</strong></span>< /li>")
        If matchs.Count > 0 Then MsgBox matchs(0).SubMatches(0)
    End Sub