Excel VBA单击JavaScript按钮

时间:2015-08-17 21:59:45

标签: javascript excel vba excel-vba

有人可以向我显示VBA代码,点击此网页上的“复制到剪贴板”按钮吗?该按钮有一个元素id =“ToolTables_example_0”,但我无法弄清楚如何从Excel执行该脚本。我尝试过重新设计我发现的许多不同的VBA代码,但没有运气。好像应该这么简单!谢谢!

https://spotwx.com/products/grib_index.php?model=nam_awphys&lat=30.26678&lon=-97.76905&tz=America/Chicago&display=table

1 个答案:

答案 0 :(得分:0)

  

以下代码要求您使用VBE的工具►参考命令将Mic​​rosoft HTML对象库和Microsoft Internet控件添加到项目中。

以下是点击该按钮的两种方法。

Sub clickIt()
    Dim a As Long, u As String, till As Double
    Dim el As MSHTML.IHTMLElement, ie As New SHDocVw.InternetExplorer

    u = "https://spotwx.com/products/grib_index.php?model=nam_awphys&lat=30.26678&lon=-97.76905&tz=America/Chicago&display=table"

    ie.Silent = True
    ie.Visible = True

    ie.navigate u
    Do While ie.Busy Or ie.readyState <> 4: DoEvents: Loop
    'wait an extra second or so (this usually isn't necessary but helped with this page)
    till = Timer + 1
    Do While Timer < till: DoEvents: Loop

    'Method 1: Loop through all the A elements looking for the right ID
    For a = 0 To ie.document.getElementsByTagName("a").Length - 1
        With ie.document.getElementsByTagName("a")(a)
            If .ID = "ToolTables_example_0" Then
                Debug.Print "found ToolTables_example_0 in a loop"
                .Click
                'the table data should be on the clipboard
                Exit For
            End If
        End With
    Next a

    'Method 2: Locate the right A element using its ID directly
    On Error Resume Next
    Set el = ie.document.getElementById("ToolTables_example_0")
    On Error GoTo 0

    If Not el Is Nothing Then
        Debug.Print "found ToolTables_example_0 directly"
        el.Click
        'the table data should be on the clipboard
    End If

    ie.Quit
    Set ie = Nothing

End Sub

我无法完全测试,因为我的ie没有安装Adobe FlashPlayer(我宁愿保持这种方式)。如果您可以手动打开Internet Explorer,请导航到该页面,单击该按钮,然后将复制到剪贴板的内容粘贴回Excel工作表,然后我认为没有理由说它不起作用。