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



我需要在span标签中获取"4,499.00",而不是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(它应该,但我不知道如何解决它)。知道如何解决这个问题吗?

您将需要使用标签信息或解析字符串以提取数字。下面的代码使用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

最新更新