Excel VBA Извлечение внутреннего текста из тега href

HTML-код выглядит так:

<div class="WebPageMessage">
<div class="WebPageMessageInformation">
<div class="Message">Your request has been scheduled. <a href="/MyAccount/QueuedJob.aspx?JobID=221816">Job # 221816. Click here To monitor Schedule</a><br>There are 0 job(s) already in the queue.</div></div></div>

Желаемый результат: Извлечь текст "Job # 221816..."

вот код, который я пытаюсь использовать, но я получаю сообщение об ошибке "объект не поддерживается" Set foo = objIE.document.getElementsByClassName("Message").getElementsByTagName("a").innerText

Любая помощь будет большой Спасибо и счастливых праздников:)

1 ответ

Это потому, что вы пытаетесь Set строка (innerText) для объекта. Кроме того, вам нужно указать, какое имя класса "Message" вы хотите и какое имя тега "a" вы хотите.

У вас есть два варианта:

Вариант 1: сначала установите объект, затем возьмите строку из foo

Dim foo As Object, myStr As String
Set foo = objIE.document.getElementsByClassName("Message")(0).getElementsByTagName("a")(0)
myStr = foo.InnerText

Вариант 2. Не присваивайте объект переменной, а просто захватывайте строку напрямую.

Dim myStr As String
myStr = objIE.document.getElementsByClassName("Message")(0).getElementsByTagName("a")(0).innerText

Обратите внимание, как я разместил (0) после ClassName а также TagName? Это может быть изменено в зависимости от вашего полного HTML-кода. Лучший метод будет использовать For Each...Next оператор для перебора всех ClassNames или TagNames, но вы можете указать, какие именно имена классов / тегов вы хотите, поместив (i) после. Обратите внимание на 's' после getElements...? Это потому, что имена классов и тегов не являются уникальными. Единственным уникальным элементом является идентификатор (обратите внимание, нет 's' в getElementByID(),

Другие вопросы по тегам