Попробуйте следующее.Он должен принести вам цену предложения, если она больше 0, в противном случае он получит последнюю цену:
Sub GetRate()
Const Url$ = "https://finance.yahoo.com/quote/AAP181221C00170000?p=AAP181221C00170000"
Dim S$, elem As Object, post As Object
With New XMLHTTP60
.Open "GET", Url, False
.send
S = .responseText
End With
With New HTMLDocument
.body.innerHTML = S
Set elem = .querySelector("td[data-test='BID-value'] > span")
If elem.innerText = 0 Then
Set post = .querySelector("#quote-market-notice").ParentNode.FirstChild
MsgBox post.innerText
Else: MsgBox elem.innerText
End If
End With
End Sub
Точно так же, как вы пробовали выше, чем .querySelector()
:
Sub GetRate()
Const Url$ = "https://finance.yahoo.com/quote/AAP181221C00170000?p=AAP181221C00170000"
Dim Http As New XMLHTTP60, Htmldoc As New HTMLDocument
Dim elem As Object, post As Object
With Http
.Open "GET", Url, False
.send
Htmldoc.body.innerHTML = .responseText
End With
Set elem = Htmldoc.querySelector("td[data-test='BID-value'] > span")
If elem.innerText = 0 Then
Set post = Htmldoc.querySelector("#quote-market-notice").ParentNode.FirstChild
MsgBox post.innerText
Else: MsgBox elem.innerText
End If
End Sub
Ссылка для добавления в библиотеку:
Microsoft xml,v6.0
Microsoft Html Object Library
Если вы хотите узнать, как работает .querySelector()
, проверьте эту ссылку .