Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从HTML下拉列表中提取数据_Html_Vba - Fatal编程技术网

从HTML下拉列表中提取数据

从HTML下拉列表中提取数据,html,vba,Html,Vba,我正在寻找一种从网站下拉框中提取可用选项数据的方法,特别是第二个选项组“所有基金公司” 提取我正在抓取的HTML代码 </div><div class="large-5 medium-5 columns spacer-bottom padding-left-none"><div class="select_wrap"><select id="search-company" name="companyid" class="default"> <

我正在寻找一种从网站下拉框中提取可用选项数据的方法,特别是第二个选项组“所有基金公司”

提取我正在抓取的HTML代码

</div><div class="large-5 medium-5 columns spacer-bottom padding-left-none"><div class="select_wrap"><select id="search-company" name="companyid" class="default">
<option value="">Search by company</option>
<optgroup label="Popular companies">
    <option value="4">Hargreaves Lansdown</option>
    <option value="1908">Lindsell Train</option>
    <option value="55">Jupiter</option>
    <option value="191">Legal & General</option>
    </optgroup>
<optgroup label="All fund companies">
    <option value="218">Aberdeen</option>
    <option value="1080">Aberforth Unit Trust Managers</option>
    <option value="141">Allianz Global Investors</option>
    <option value="3472">Alquity Investment Management Limited</option>
    <option value="1324">Amati Global Investors Ltd</option>
谢谢你,吉普

这是解决问题的代码。。。不确定这是否是最有效的方法,但它确实有效:)


optgroup不是类名;它是一个元素,或者更准确地说是具有搜索公司id的select元素的子元素。
Set htmlObj = html.getElementById("search-company")

For Each Child In htmlObj.getElementByClassName("optgroup")(1).Children
    sqlId = Child.Value
    sqlCompany = Child.innerText
    Debug.Print (sqlId & " - " & sqlCompany)
Next
    Set htmlObj = html.getElementById("search-company")

    For Each Child In htmlObj.Children
        If Child.Label = "All fund companies" Then Set htmlObj2 = Child
    Next

    For Each Child In htmlObj2.Children
        sqlId = Child.Value
        sqlCompany = Child.innerText
        Debug.Print (sqlId & " - " & sqlCompany)
    Next