Поиск элементов по имени тега в папке HTML, которая находится в вашем каталоге

0

Как вы можете видеть, это фрагмент кода, который загружает 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 из этого места?

  • 1
    Я не пробовал, если это работает, но работает ли изменение URL вашего кода на локальный путь? (замените " sec.gov/cgi-bin/browse-edgar ?" & _ "action = getcompany & CIK =" & Ticker & "& type =" & InfoType & _ "& dateb = & owner = exclude & count = 20" на "C: \ vsti" \ yourhtmlname.html " )
  • 0
    Оооо, что может сделать свое дело !!! 1
Показать ещё 5 комментариев
Теги:
excel-vba
excel
excel-2010

1 ответ

0

Вот один из способов использования 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

Результаты:

Изображение 174551

Протестировано на IE10 и Excel 2010

Ещё вопросы

Сообщество Overcoder
Наверх
Меню