通过Excel VBA调用javascript文件(.js)?

时间:2008-12-04 16:00:49

标签: javascript excel vba excel-vba

如何通过Excel VBA调用javascript文件(.js)?


因此,我反对同样的问题,我会试着向你们提交我的案例。

我正在尝试使用excel vba宏自动从valeo的目录中提取数据。

我有一份附在valeo汽车产品上的références列表(巨量列表,超过3000种商品)。我想从目录中直接导入信息,似乎是在javascript下运行。

我需要的数据是附在参考文献上的每个车辆的清单。

以下是网址:http://outcat-cs.tecdoc.net/ows/en/7FA2A0C501BC34CA4BECB04095663CF1.ows_cs2.srv?view=VIndexFramesetJsp

我想访问“直接文章搜索”标签,以便直接从excel标签的单元格复制参考,然后模拟参考上的clic以显示“链接的vehicules部分”然后将它们复制到新的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上制作页面时选择/点击按钮,因为它没有按钮的名称,值或ID。

在点击“直接文章搜索”按钮并点击后,地址字段中的网址似乎相同....

希望我尽管英语很清楚......

问候

3 个答案:

答案 0 :(得分:3)

以前建议的所有方法听起来都很糟糕。

要获得更可靠的解决方案,请通过Windows Script Components将Javascript嵌入到COM组件中,并像调用任何其他COM组件一样调用基于Javascript的COM组件。

答案 1 :(得分:0)

我认为没有直接的方法可以在VBA中运行JavaScript代码。

您可以尝试将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>

答案 2 :(得分:0)

你的意思是通过Windows脚本主机? 您可以使用.js文件的名称将shell(使用shell命令)输出到wscript.exe。 但是这个javascript对象模型不会像你在浏览器中得到的那样。 如果你告诉我们javascript应该做什么会很有帮助。