有人可以向我显示VBA代码,点击此网页上的“复制到剪贴板”按钮吗?该按钮有一个元素id =“ToolTables_example_0”,但我无法弄清楚如何从Excel执行该脚本。我尝试过重新设计我发现的许多不同的VBA代码,但没有运气。好像应该这么简单!谢谢!
答案 0 :(得分:0)
以下代码要求您使用VBE的工具►参考命令将Microsoft 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工作表,然后我认为没有理由说它不起作用。