【问题标题】:Dropdown Menus with VBA带有 VBA 的下拉菜单
【发布时间】:2019-11-02 12:17:45
【问题描述】:

我需要使用 VBA 从下拉菜单中选择一个特定选项。我该怎么做?

https://clinicaltrials.gov/ct2/results?cond=&term=Medpace&cntry=&state=&city=&dist= 链接到我们试图从中提取的网页

IE.document.getElementsByName("down_count").click 我试过的代码

Full Module:
Private Sub Workbook_Open()
    Dim IE As Object
    Set IE = CreateObject("InternetExplorer.application")
    With IE
        .Visible = True
        .Navigate ("https://clinicaltrials.gov/ct2/results?cond=&term=Medpace&cntry=&state=&city=&dist=")
        While .Busy Or .readyState <> 4: DoEvents: Wend

    End With

    With IE.document
    IE.Refresh
        Set div = IE.document.getElementById("save-list-link")
        div.FireEvent "onclick"
    ' Application.SendKeys "{TAB}", True
    ' Application.SendKeys "{TAB}", True
    ' Application.SendKeys "{SPACE}", True
    ' Application.SendKeys "{DOWN}", True
    ' Application.SendKeys "{ENTER}", True
    ' Application.SendKeys "{TAB}", True
    ' Application.SendKeys "{TAB}", True
    ' Application.SendKeys "{SPACE}", True
    ' Application.SendKeys "{DOWN}", True
    ' Application.SendKeys "{DOWN}", True
    ' Application.SendKeys "{DOWN}", True
    ' Application.SendKeys "{ENTER}", True
    IE.document.getElementsByName("down_count").click
    ' For Each elt In IE.document.getElementById("number-of-studies")
        ' If InStr(elt.innerText, "Found") > 0 Then elt.click: Exit For
    ' Next elt

    Set div4 = IE.document.getElementById("submit-download-list")
    div4.click
    End With
End Sub

希望将研究数量转到所有找到(此数字会更改) 并选择文件格式为 CSV

【问题讨论】:

    标签: excel vba web-scraping dropdown queryselector


    【解决方案1】:

    下面告诉你如何下载

    Option Explicit
    
    'VBE > Tools > References: Microsoft Internet Controls
    Public Sub GetData()
        Dim ie As Object
        Set ie = CreateObject("InternetExplorer.Application")
        With ie
            .Visible = True
            .Navigate2 "https://clinicaltrials.gov/ct2/results?cond=&term=Medpace&cntry=&state=&city=&dist="
    
            While .Busy Or .readyState < 4: DoEvents: Wend
    
            With .document
                .querySelector("#save-list-link").Click
                .querySelector("#number-of-studies option:last-child").Selected = True 'select last option from that dropdown
                '.querySelector("#number-of-studies").selectedIndex = 1  ''selects 2nd option
                .querySelector("[value=csv]").Selected = True 'select csv with attribute = value css selector
    
                .querySelector("#submit-download-list").Click
            End With
            Application.Wait Now + TimeSerial(0, 0, 10)
            Application.SendKeys "%+O", True
            Application.Wait Now + TimeSerial(0, 0, 10)
            .Quit
        End With
    End Sub
    

    【讨论】:

    • 这很好用,除了最后一部分关于选择为 CSV。它不做任何事情,文件下载类型仍​​然是 PDF。还有没有办法自动打开下载的文件?
    • 非常感谢!效果惊人!
    猜你喜欢
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-05
    • 1970-01-01
    • 2013-09-03
    相关资源
    最近更新 更多