【发布时间】:2018-09-11 14:20:52
【问题描述】:
早安,
我希望那里的某个好心人可以帮助我解决我在使用 VBA 操作网站时遇到的障碍。我正在使用 MS Excel 2010 和 Internet Explorer 11.0.56。
我对 VBA 有点熟悉,但从未使用它导航到网站、输入信息和单击按钮。我设法通过以下方式蒙混过关:
在我的 Excel 电子表格的 A 列中,我有一个 10 位数的案例编号列表。
下面的代码将打开 IE,导航到所需的网站,在我登录时暂停,然后导航到搜索屏幕,输入第一个案例编号并按 SEARCH 按钮(是的,我在此有案例编号示例硬编码,没有循环,但我可以处理的东西,所以请忽略):
Sub Button_Click()
Dim objIE As Object
Set objIE = New InternetExplorerMedium
objIE.Top = 0
objIE.Left = 0
objIE.Width = 800
objIE.Height = 600
objIE.AddressBar = 0
objIE.StatusBar = 0
objIE.Toolbar = 0
objIE.Visible = True
objIE.Navigate ("https://somewebsite.com")
MsgBox ("Please log in and then press OK")
objIE.Navigate ("https://somewebsite.com/docs")
Do
DoEvents
Loop Until objIE.ReadyState = 4
objIE.Document.all("caseNumber").Value = "1234567890"
objIE.Document.getElementById("SearchButton").Click
Exit Sub
Do
DoEvents
Loop Until objIE.ReadyState = 4
MsgBox ("Done")
End Sub
That will bring me to this screen
在搜索字段中输入的文件号将返回动态表中任意数量的文件,每个文件的左侧都有一个复选框。
对于这个例子,假设我只关心“类型”列下名为“CC8”的文件。对于给定的文件编号,永远只有一个“CC8”实例。
我需要帮助的是,如何通过 VBA 搜索此表,找到“CC8”行,然后自动选中左侧的复选框?
当我在 IE 中检查“CC8”元素时,这是与之关联的 HTML(以灰色突出显示;整个表格在“listing list-view clearfix”类下)
与“CC8”项目相关的复选框的HTML如下:
两者的“id”具有相同的数字序列,但一个以“viewPages”开头,另一个以“doc”开头。
谁能帮助我了解我需要在代码中添加什么才能选中此复选框?谢谢!
【问题讨论】:
-
请使用 sn-p 工具插入 html,因为我们无法从图像中复制和测试。使用 edit 按钮进行更改。
-
包含足够多的 HTML,以便我们可以查看模式是否在多个复选框项和大小写超链接中重复。
标签: excel vba internet-explorer web-scraping automation