Как вы можете видеть, это фрагмент кода, который загружает HTML-документ, а затем просто получает элемент, ища их с использованием имени тега.
'STATEMENT_1
LoadPage IE, "https://www.sec.gov/cgi-bin/browse-edgar?" & _
"action=getcompany&CIK=" & Ticker & "&type=" & InfoType & _
"&dateb=&owner=exclude&count=20"
'STATEMENT_2
Set els = IE.Document.getelementsbytagname("a")
Однако как насчет того, когда вам не нужно использовать Internet Explorer
для извлечения HTML
документа, и у вас есть HTML
внутри вашего каталога?
Например, если у меня есть HTML
документ в каталоге C:\vsti
как я могу указать VBA
на go/fetch из этого места?
Вот один из способов использования IE для взаимодействия с локальным файлом.
Файл HTML (сохранен на рабочем столе)
<HTML>
<HEAD>
<Title>My Example</Title>
</HEAD>
<BODY>
<div class="find-me">
You Found Me
</div>
</BODY>
</HTML>
Excel VBA (с тремя показанными способами)
Sub GetData()
Dim IE As InternetExplorer
'Create InternetExplorer Object
Set IE = New InternetExplorerMedium
' You can coment Next line To see page load
IE.Visible = False
'Set URL to local file
IE.Navigate2 "C:\Users\PortlandRunner\Desktop\index.html"
' Wait while IE loading... Probably don't need this since it local
Do While IE.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
'Option A
Dim foundA As String
foundA = IE.Document.getElementsByClassName("find-me")(0).innerText
MsgBox foundA
'Option B
Dim foundB As Variant
Set foundB = IE.Document.getElementsByClassName("find-me")
MsgBox foundB(0).textContent
'Option C
Dim tag
Dim tags As Object
Set tags = IE.Document.getElementsByTagName("*")
For Each tag In tags
If tag.className = "find-me" Then
MsgBox tag.innerText
Exit For
End If
Next tag
'Show IE
'IE.Visible = True
' Clean up
Set IE = Nothing
End Sub
Результаты:
Протестировано на IE10 и Excel 2010