点击Excel VBA的JavaScript按钮

Excel VBA click JavaScript button

本文关键字:JavaScript 按钮 VBA Excel 点击      更新时间:2023-09-26

有人能告诉我VBA代码点击这个网页上的"复制到剪贴板"按钮吗?按钮有一个元素id="ToolTables_example_0",但我不知道如何从Excel执行脚本。我试过重新设计许多不同的VBA代码,我发现,但没有运气。看起来应该这么简单!谢谢!

https://spotwx.com/products/grib_index.php?model=nam_awphys& lat = 30.26678,朗= -97.76905和tz =美国/Chicago&显示=表

下面的代码要求你使用VBE的Tools►References命令将Microsoft HTML Object库和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工作表,那么我认为它没有理由不工作