как использовать .getelementbyID и копировать внутренний html - VBA

Итак, я настроил свои ссылки на библиотеку объектов Microsoft HTML и элементы управления Microsoft Internet, а пример ввода значения путем получения идентификатора элемента приведен ниже:

With HTMLDoc

.getElementById("USER").setAttribute "value", "myuser"
.getElementById("PASSWORD").setAttribute "value", "mypass"
.getElementById("Button").Click

End With

Что мне любопытно узнать, так это, допустим, был тег ID с именем «ReturnValue», который содержал строку во внутреннем html, которую я хотел скопировать в буфер обмена, как бы я использовал .getElementByID и COPY в этом случае?


person Jason Bayldon    schedule 10.09.2012    source источник


Ответы (2)


Вы можете получить innerHTML следующим образом:

TxtHtml = .getElementById("elementId").InnerHtml

Затем вы можете установить текст буфера обмена из VBA: http://word.mvps.org/faqs/macrosvba/ManipulateClipboard.htm

person Tim Williams    schedule 10.09.2012
comment
Чудесно, спасибо! Я использовал strFirst12Chars = Left$(TXTHTML, 12) Чтобы вернуть мне первые 12 символов, что, если они заключены в теги ‹a›, допустим, мы используем ту же концепцию? - person Jason Bayldon; 10.09.2012
comment
VBA имеет Left(), который вы можете использовать для получения первых x символов строки. Если вам просто нужен текстовый контент (без html), используйте innerText вместо innerHtml - person Tim Williams; 10.09.2012

Используйте JQuery для доступа к innerHtml или Html, что хотите.

var textToCopy = $(#ReturnValue).innerHtml();

Для копирования текста в буфер обмена вы можете обратиться Копировать / Поместить текст в буфер обмена с помощью FireFox, Safari и Chrome

person Mandar    schedule 10.09.2012
comment
Я не использую Javascript, я использую VBA с IE для автоматизации (без доступа к другим браузерам). Я заметил, что есть много ссылок на javascript, но не так много ссылок на VBA по этому вопросу. Но спасибо за ответ. - person Jason Bayldon; 10.09.2012