Reputation: 13
I'm quite a beginner with VBA and have a question regarding href
-tags.
In following example I have the href
-tag to identify my requested value, which is inside in the b
-tag, in this case the 585.00. That's the value I need.
<div style="float: left; width: 72px; text-align: right; height: 15px; padding: 2px; background-image: url(/img/rowbgnd.png)">
<a href="/goldvreneli-20-franken-vreneli/de/44-1/add/CH-GV-20-1897.2-2/1" title="in den Warenkorb legen">
<b>585.00</b>
</a>
</div>
I didn't find any solution. Can anyone help me?
To get a value from a website I found this article Trying to extract ONE value from a webpage with VBA in Excel and it worked fine for another case. But in the example above I don't have a class for which I could use this code:
IE.Document.getElementsByClassName("className")
I found some good Entries (e.g. VBA return html element href from class table) to get the value of the href
itself, but nowhere, how to get the tag below.
Upvotes: 1
Views: 71
Reputation: 341
Loop like this
Foreach a in IE.Document.getElementsByTag("a")
print a.InnerText
next a
Upvotes: 0
Reputation: 1586
Try this;
Sub Test()
Dim HTTP As Object, HTML As Object
Dim URL As String, objColl As Object, i As Long
URL = "https://schweizergeld.com/goldvreneli-20-franken-vreneli/de/44-1"
Set HTTP = CreateObject("MSXML2.XMLHTTP")
Set HTML = CreateObject("HTMLFILE")
HTTP.Open "GET", URL, False
HTTP.send
If HTTP.Status = 200 Then
HTML.body.innerHTML = HTTP.responseText
Set objColl = HTML.getElementsByTagName("A")
For i = 0 To objColl.Length - 1
If objColl(i).HREF = "about:/goldvreneli-20-franken-vreneli/de/44-1/add/CH-GV-20-1897.2-2/1" Then
MsgBox objColl(i).innerText
Exit For
End If
Next
Else
MsgBox HTTP.StatusText
End If
Set HTML = Nothing
Set HTTP = Nothing
End Sub
Upvotes: 0