Вызов файла JavaScript (.js) через Excel VBA?

1

Как вызвать 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-адрес в поле адреса совпадает с нажатием кнопки "Прямой поиск статьи" и после нажатия....

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

Привет

  • 1
    Некоторое объяснение того, что вы хотите сделать за кулисами, было бы очень полезно.
Теги:
excel-vba
excel

3 ответа

3

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

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

0

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

0

Я не думаю, что есть прямой способ запустить код 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>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню