我正在尝试编写一个宏来访问来自门户网站的数据,我需要在其中启动网站并单击“在 Excel 中打开”按钮。
我已经正常启动了网页,但我无法不点击该链接。我的理解是我应该能够做类似的事情:
BrowswerObject.Document.ElementID.Click
但我不确定正确的元素和编码是什么。当我检查元素时,网页有以下代码:
<A onclick=ur_Button_click(event); tabIndex=0 id=BUTTON_TOOLBAR_STANDARD_btn7_acButton title="Open in Excel" class=urBtnStd onkeydown=ur_Button_keypress(event); style="OVERFLOW: visible; TEXT-ALIGN: center" href="javascript:void(0);" ct="B" ti="0" st="" ocl="sapbi_page.sendCommandArray([['GUID','11',0],['NOUILOCK','X',0],['BI_COMMAND_TYPE','ABSTRACT',0]],event);">Open in Excel</A>
有人能指出我应该关注什么吗?
编辑: 我尝试过 getElementByID 但遇到此错误: 对象“IWebBrowser2”的方法“Document”失败
示例代码是:
Dim ie As Object
Set ie = CreateObject("Internetexplorer.Application")
ie.Visible = True
ie.Navigate *Link*
ie.document.getElementById("BUTTON_TOOLBAR_STANDARD_btn7_acButton ").Click
最佳答案
根据页面上有多少相似元素,您可以尝试使用 CSS 选择器
以下内容将选择您的 HTML 部分
a[onclick*='ur_Button_click(event)']
<小时/>
CSS 查询
<小时/>VBA:
ie.document.querySelector("a[onclick*='ur_Button_click(event)']").Click
如果您需要使用多个匹配项:
ie.document.querySelectorAll("a[onclick*='ur_Button_click(event)']")
返回匹配项的nodeList,然后通过索引访问来单击相应的项。
<小时/>有关 CSS selectors 的信息
关于excel - VBA 网络自动化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38223246/