VBA更改internet explorer中的下拉列表值
我正在寻找使用Excel VBA自动化internet explorer以从网站中提取足球比赛结果,并且在更改下拉列表值时很难更新数据 网址为: 我希望更改“阶段”下拉列表的值,并删除比赛结果 我的代码可以很好地打开IE,更改“scrape”下拉列表的值,但我无法更新数据。虽然我对VBA很熟悉,但我对HTML和Javascript知之甚少,尽管我能猜出一些行在做什么。从我所看到的javascript代码中,有处理更改事件的代码,我就是看不到如何让它运行——我已经尝试按照搜索的建议在代码中触发“onchange”事件,但我无法让它运行 这是我可以看到的控制下拉列表的代码(我已经删除了很多其他下拉列表的下拉值,因为它使这篇文章变得更长:VBA更改internet explorer中的下拉列表值,vba,automation,scrape,Vba,Automation,Scrape,我正在寻找使用Excel VBA自动化internet explorer以从网站中提取足球比赛结果,并且在更改下拉列表值时很难更新数据 网址为: 我希望更改“阶段”下拉列表的值,并删除比赛结果 我的代码可以很好地打开IE,更改“scrape”下拉列表的值,但我无法更新数据。虽然我对VBA很熟悉,但我对HTML和Javascript知之甚少,尽管我能猜出一些行在做什么。从我所看到的javascript代码中,有处理更改事件的代码,我就是看不到如何让它运行——我已经尝试按照搜索的建议在代码中触发“o
<div id="breadcrumb-nav">
.
.
<span><select id="stages" name="stages"><option selected="selected" value="/Regions/250/Tournaments/30/Seasons/3871/Stages/8209">Europa League Group Stages</option>
<option value="/Regions/250/Tournaments/30/Seasons/3871/Stages/7816">Europa League Qualification</option>
<option value="/Regions/250/Tournaments/30/Seasons/3871/Stages/8158">Europa League Grp. A</option>
<option value="/Regions/250/Tournaments/30/Seasons/3871/Stages/8159">Europa League Grp. B</option>
.
.
<option value="/Regions/250/Tournaments/30/Seasons/3871/Stages/8466">Europa League</option>
</select></span>
</div>
<script type="text/javascript">
$('#breadcrumb-nav select').change(function () {
NG.GA.trackEvent('BreadcrumbNav', this.id);
window.location.href = this.value;
// TODO: Disable all selects?
});
</script>
任何帮助都将不胜感激。在事件“select元素已更改其值”上必须有一些JavaScript执行。我的建议比执行JavaScript简单得多,就是浏览链接(因为JS在这里所做的只是更改您看到的HTML页面,而不是更改同一网页中的元素) 例如,我将替换这个:
SelectValue ie, "/Regions/250/Tournaments/30/Seasons/3871/Stages/7816"
用这个
ie.Navigate "http://www.whoscored.com/" & "/Regions/250/Tournaments/30/Seasons/3871/Stages/7816"
获得完全相同的结果。谢谢你的建议,这真的很明显。因为我想学习网页抓取,你知道如何通过执行javascript来实现这一点吗?@Ash如果有用,不要忘了向上投票,如果有效,请标记;)@Ash这是另一个故事。JavaScript是一个由浏览器解释的代码,您不能从VBA执行此操作。或者更好,您可以通过VBA执行此操作,但总体而言,这是不值得的。无论如何,JavaScript用于修改HTML文件,但VBA已经有包含JS函数的库。您可以从开始,但同样是为了实现您的目标我会说这不值得。
ie.Navigate "http://www.whoscored.com/" & "/Regions/250/Tournaments/30/Seasons/3871/Stages/7816"