Проблемы с типом данных с getElementById (Excel) - PullRequest
1 голос
/ 07 апреля 2020

Я пытаюсь скопировать некоторый текст с веб-страницы в Excel.

Я думаю, что приведенный ниже код переносит его в свойство объекта, называемое output, но мне нужно получить строку.

Я пытался использовать CType для преобразования свойства в строку, но что бы я ни делал, я получаю синтаксическую ошибку.

Я также пытался использовать getElementById (id) .innerText - в зависимости от того, что я прочитал здесь , это все равно вернет свойство, но на самом деле я получаю несоответствие типов, если использую его с выводом, определенным как свойство. Если я определяю вывод как строку, код компилируется нормально, но когда он запускается, я получаю «Переменная объекта или переменная блока не установлена».

Как получить текстовое содержимое элемента в виде строки?

Sub Scrape()

Dim ie As Object
Dim cr As String
Dim li As String
Dim lien As String
Dim cnd As String
Dim doc As New HTMLDocument
Dim id As String
Dim output As Property

Set ie = CreateObject("InternetExplorer.Application")

cr = Cells(1, 1)
li = Cells(1, 2)
lien = URLEncode(li)
cnd = Cells(1, 3)
id = Cells(2, 1)

With ie

    .Visible = True
    .Navigate (cr & lien & cnd)

    Do
       DoEvents
    Loop Until ie.readyState = READYSTATE_COMPLETE

    Set doc = ie.document

    Set output = doc.getElementById(id) '<< Can't extract text from this property
End With

End Sub

sp

...