【问题标题】:Click on link using VBA单击使用 VBA 的链接
【发布时间】:2018-07-01 02:56:29
【问题描述】:

我希望在这里得到一些帮助。我正在尝试自动从网站下载文件,这需要我点击每次搜索的链接。

这里是链接 html 信息:

(a class="icon-xls-export" href="/us/products/239505/ishares-us-consumer-goods-etf/1395165510754.ajax?fileType=csv&fileName=IYK_holdings&dataType=fund" onclick="s_objectID="https://www.ishares.com/us/products/239505/ishares-us-consumer-goods-etf/1395165510754.ajax?fileT_1";return this.s_oc?this.s_oc(e):true">
Detailed Holdings and Analytics </a)

这是我的代码:

Sub Navigate_Web()

For Each Cell In Range("A1:A1") 'location of ticker symbol

Dim IE As New InternetExplorer
IE.Visible = True

IE.Navigate "https://www.ishares.com/us/products/239505/" & Cell.Value & "?referrer=tickerSearch"

Do
DoEvents
Loop Until IE.readyState = READYSTATE_COMPLETE

Set objInputs = IE.document.getElementsByclassname("icon-xls-export")

Next Cell
End Sub

我可以打开网站没问题,但我一直收到错误消息,对象不支持此属性或方法。

所以这里的任何帮助都会很棒!

提前致谢!

【问题讨论】:

    标签: vba


    【解决方案1】:

    请正确格式化您的问题、代码块等 :)

    无论如何...也许是这样的:

    Set tags = wb.Document.GetElementsByTagname("Input")
    
    For Each tagx In tags
        If tagx.alt = "File_Certificate_Go" Then
            tagx.Click
        End If
    Next
    

    其中 wb 是 WebBrowser 控件。

    【讨论】:

    • 停止关注我 :P 这只是有用的信息,链接问题只会造成麻烦。我努力获取信息是因为我想提供帮助,我不会对任何虚假的互联网积分表示废话:)
    • 如果我最初的问题不清楚,请采纳。我在按类行的 get 元素上收到代码错误,其中错误消息是“对象不支持此属性或方法。”
    • 我无法使用 tags.alt,因为 alt 不存在。对于每个页面,唯一标识符似乎是类名。那么如何根据类使用onclick呢?
    【解决方案2】:

    我想你想要这个。

    Public Sub OpenWebXLS()
    ' *************************************************
    ' Define Workbook and Worksheet Variables
    ' *************************************************
    Dim wkbMyWorkbook As Workbook
    Dim wkbWebWorkbook As Workbook
    Dim wksWebWorkSheet As Worksheet
    
    Set wkbMyWorkbook = ActiveWorkbook
    
    ' *************************************************
    ' Open The Web Workbook
    ' *************************************************
    Workbooks.Open ("https://www.ishares.com/us/products/239505/ishares-us-consumer-goods-etf/1395165510754.ajax?fileType=csv&fileName=IYK_holdings&dataType=fund")
    
    ' *************************************************
    ' Set the Web Workbook and Worksheet Variables
    ' *************************************************
    Set wkbWebWorkbook = ActiveWorkbook
    Set wksWebWorkSheet = ActiveSheet
    
    ' *************************************************
    ' Copy The Web Worksheet To My Workbook and Rename
    ' *************************************************
    wksWebWorkSheet.Copy After:=wkbMyWorkbook.Sheets(Sheets.Count)
    wkbMyWorkbook.Sheets(ActiveSheet.Name).Name = "MyNewWebSheet"
    
    ' *************************************************
    ' Close the Web Workbook
    ' *************************************************
    wkbMyWorkbook.Activate
    wkbWebWorkbook.Close
    
    End Sub
    

    【讨论】:

      【解决方案3】:

      CSS 选择器:

      您可以使用

      的 CSS 选择器
      a[onclick*=https://www.ishares.com/us/products/239505/ishares-us-consumer-goods-etf/1395165510754.ajax]
      

      带有a标签的元素,其属性为onclick,其值包含https://www.ishares.com/us/products/239505/ishares-us-consumer-goods-etf/1395165510754.ajax


      CSS 查询:


      VBA:

      document.querySelector方法申请

      ie.document.querySelector("a[onclick*=https://www.ishares.com/us/products/239505/ishares-us-consumer-goods-etf/1395165510754.ajax]").Click
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-23
        • 1970-01-01
        • 2014-08-29
        • 1970-01-01
        • 1970-01-01
        • 2014-01-26
        • 1970-01-01
        • 2019-08-25
        相关资源
        最近更新 更多