excel - VBA 网络自动化

标签 excel vba internet-explorer web-scraping automation

我正在尝试编写一个宏来访问来自门户网站的数据,我需要在其中启动网站并单击“在 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 查询

CSS query

<小时/>

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/

相关文章:

带内存的 Python 随机座位生成器

excel - 为什么字典类的 Typename 函数这么慢?

excel - 用于检查具有复杂条件的空组合框或文本框的 VBA 函数

vb.net - 通过 VB.NET 合并 excel 单元格,而不询问每个单元格何时有值

Python Pandas SUMPRODUCT 和 L 矩阵计算

复制/粘贴到 Word 文档中的 Excel VBA 代码导致我的代码失败

vba - Word 文档中的 getElementByID

javascript - JQuery DatePicker 在 Internet Explorer 7 中不工作

html - 下拉菜单列表在 IE9 中失去焦点

javascript - 为什么这个箭头功能在 IE 11 中不起作用?