如何通过Excel VBA调用javascript文件(.js)?
因此,我反对同样的问题,我会试着向你们提交我的案例。
我正在尝试使用excel vba宏自动从valeo的目录中提取数据。
我有一份附在valeo汽车产品上的références列表(巨量列表,超过3000种商品)。我想从目录中直接导入信息,似乎是在javascript下运行。
我需要的数据是附在参考文献上的每个车辆的清单。
我想访问“直接文章搜索”标签,以便直接从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。
在点击“直接文章搜索”按钮并点击后,地址字段中的网址似乎相同....
希望我尽管英语很清楚......
问候
答案 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应该做什么会很有帮助。