VBA Excel需要内部文本,但不包含它也包含的标记

时间:2014-12-23 10:55:19

标签: excel vba tags getelementsbytagname

我需要得到" 4,499.00"在span标签中,但不是SEK部件。

<span id="big-value" class=big-value"> <sup> SEK </sup> 4,499.00 </span>

我用

Recovered = ie.document.getElementsByTagName("span")(22).innertext

但是当标签包含另一个标签时,它似乎不起作用。它返回SEK和4,499.00(它应该但我不知道如何解决它)。知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您需要使用标记信息或解析字符串以提取数字。下面的代码使用Regexp来执行稍后的操作

您的文字

Sub Test()
MsgBox CleanStr("<span id=""big-value"" class=big-value""""> <sup> SEK </sup> 4,499.00 </span>")
End Sub

UDF提取数字

Function CleanStr(StrIn As String) As String
Dim objRegex As Object
Dim objRegexMC As Object
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
     .Pattern = "[0-9,\.]+"
     If .Test(StrIn) Then
        Set objRegexMC = .Execute(StrIn)
        CleanStr = objRegexMC(0)
    Else
        CleanStr = "No Match"
    End If
End With
End Function
相关问题