Удаление информации с веб-сайта с использованием VBA - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь собрать информацию об агрегированной 30-летней фиксированной ипотечной ставке для США, используя VBA в Excel. Вот что у меня есть, но я не могу понять, что я делаю неправильно:

Sub National_Average()
'
' National_Average Macro
' Record the national average mortgage rate from https://fred.stlouisfed.org/series/MORTGAGE30US

Dim ie As InternetExplorer
Dim htmlEle As IHTMLElement
Dim i As Integer

i = 1

Set ie = New InternetExplorer

ie.Visible = True

ie.navigate "https://fred.stlouisfed.org/series/MORTGAGE30US"

Application.Wait (Now + TimeValue("00:00:05"))

For Each htmlEle In ie.document.getElementsByClassName("series-meta-observation-value")

With Sheets("Demand")

.Range("F2").Value = htmlEle.getElementsByClassName("series-meta-observation-value").textContent

End With

Next

    ie.Quit
End Sub

Я знаю, что это как-то связано с моим For Each разделом, в частности, с разделом Range("F2").Value , Помощь будет оценена!

1 Ответ

1 голос
/ 27 марта 2020

Вы зацикливаетесь на каждом элементе, найденном классом, почему вы снова используете .getelementsbyclass () в htmlEle, чтобы присвоить значение. должно быть как ниже

For Each htmlEle In ie.document.getElementsByClassName("series-meta-observation-value")
With Sheets("Demand")
.Range("F2").Value = .Range("F2").Value & htmlEle.innertext 'accumulating all data on cell
End With
Next htmlEle 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...