Вызов файла JavaScript (.js) через Excel VBA? - PullRequest
2 голосов
/ 04 декабря 2008

Как вызвать файл JavaScript (.js) через Excel VBA?


Так как я против такой же проблемы, я постараюсь представить вам, ребята, мое дело.

Я пытаюсь автоматизировать извлечение данных из каталога valeo с помощью макроса excel vba.

У меня есть список ссылок, связанных с автомобильной продукцией valeo (огромный список, насчитывающий более 3000 тысяч наименований). И я хотел бы импортировать напрямую информацию из каталога, которая работает под javascript.

Данные, которые мне нужны, это список всех транспортных средств, прикрепленных к ссылке.

Вот URL: http://outcat -cs.tecdoc.net / ows / en / 7FA2A0C501BC34CA4BECB04095663CF1.ows_cs2.srv? View = VIndexFramesetJsp

Я хотел бы получить доступ к вкладке «Прямой поиск по статье», чтобы скопировать ссылку непосредственно из ячейки вкладки Excel, а затем смоделировать щелчок по ссылке, чтобы отобразить «раздел связанных транспортных средств», а затем скопировать их в новый лист Excel.

Я уже преуспел в этом с помощью чистой веб-страницы, запрограммированной в формате html (oscaro.com), используя следующий код:

Set maPageHtml = IE.document
Set Helem = maPageHtml.getElementsByTagName("input")

For i = 0 To Helem.Length - 1 
    If Helem(i).getAttribute("name") = "toFind" Then Helem(i).Value = "819971" '819971 is the valeo reference searched
    If Helem(i).getAttribute("name") = "submit" Then Set Monbouton = Helem(i)
Next

Monbouton.Click 'this does the click on my button Monbouton

Но эту технику нельзя использовать с веб-сайтом valeo, поскольку я не могу (или, по крайней мере, пока не знаю, как это сделать) выбрать / нажать кнопку, когда страница сделана на javascript, поскольку не имеет имени, значения или идентификатора для кнопки.

Также кажется, что URL-адрес в поле адреса совпадает до нажатия кнопки «Прямой поиск по статье» и после нажатия ....

Надеюсь, я достаточно ясен, несмотря на мой английский ...

Привет

Ответы [ 3 ]

3 голосов
/ 12 мая 2009

Все ранее предложенные подходы звучат для меня хакерски.

Для более надежного решения вставьте Javascript в компонент COM с помощью Windows Script Components и вызовите компонент COM на основе Javascript, как любой другой компонент COM.

0 голосов
/ 04 декабря 2008

Вы имеете в виду через хостинг скриптов Windows? Вы можете использовать shell (используйте команду shell) для wscript.exe с именем файла .js. Но эта объектная модель javascript не будет похожа на ту, что вы получаете в браузере. Было бы полезно, если бы вы сказали нам, что должен делать javascript.

0 голосов
/ 04 декабря 2008

Я не думаю, что есть прямой способ запустить код JavaScript в VBA.

Что вы можете попытаться сделать, это встроить код JavaScript в HTML-форму, которую вы можете открыть в (скрытом) элементе управления браузера. Затем заполните форму элементов управления через DOM элемента управления браузера и отправьте форму. Передача запускает функцию JavaScript, которую вы хотите вызвать.

Образец (не тестировался):

VBA:

oIE.Document.frmMain.param1.Value = 5
oIE.Document.frmMain.param2.Value = "6"
oIE.Document.frmMain.submit.click ' this line will call the JavaScript function

HTML:

<div id="submit" > <a href="javascript:doAction();">Do Action</a></div>

<script>
function doAction()
{
    // do whatever the code should do
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...