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()
,