【发布时间】:2020-02-20 19:50:36
【问题描述】:
这是我可以看到的 HTML 以及宏和目标的部分内容:
<a class="Ligne0 OrderNo" style="width: 100%; height: 100%; display: block;">20190180963865</a>
MsgBox IE.document.Url
Dim element As IHTMLElement
Dim elements As IHTMLElementCollection
Dim HTML As HTMLDocument
Set HTML = IE.document
Set elements = HTML.getElementsbyclassname("Ligne0 OrderNo")
Dim Count As Long
Dim erow As Long
Dim BOO
Count = 0
For Each element In elements
If element.classname = "Ligne0 OrderNo" Then
erow = Sheet2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Cells(erow, 1) = HTML.getelementsbytagname("a")(Count).innertext
BOO = HTML.getelementsbytagname("a")(Count).innertext
Count = Count + 1
End If
Next element
Range("A2:B11").Select
Columns("A:A").EntireColumn.AutoFit
Columns("B:B").ColumnWidth = 36
MsgBox BOO
End Sub
Ligne0 OrderNO 类在正文中是唯一的。我需要用我创建的数组交叉检查“20190180963865”,找到后能够单击将我带到另一个页面的元素。
我尝试过的: ** MSGBOX.ie.document.url 给了我正确的 URL。我在此处裁剪了宏的顶部以节省空间。
MSGBOX BOO 应该给我“20190180963865”,但什么也没给我。我添加了 .innertext 和 .value 但随后 msgbox 没有出现。
然后使用 BOO,我希望能够在 IE 上单击文本
** 我已经勾选了“references Microsoft internet control”和“Microsoft HTML object library”
【问题讨论】:
-
如果您通过类名获取元素,并且您的元素的类在页面上是唯一的,那么您的元素集合中应该只有一个元素。为什么你需要按标签获取元素?你可以检查
innertext并点击它
标签: html excel vba internet-explorer controls