首页 > 解决方案 > 自动搜索 CAGE 代码

问题描述

我需要从 DLA 检索大约 500 个 CAGE 代码的属性并将它们记录在我的电子表格中。我首先尝试为一个项目检索它,然后最终循环它。我不断收到以下错误,我不知道为什么。

请注意,除非您之前已经打开过网站并且没有关闭浏览器(您需要接受条款和条件),否则代码不起作用。

单元格 B2 = https://cage.dla.mil/Search/Results?q=07187&page=1

Sub NSCM()

Dim ie As Object

Set ie = CreateObject("INTERNETEXPLORER.APPLICATION")

'Retrieve CAGE Code
Dim CAGE As String
CAGE = Range("B2").Value


'Navigate to Cage Code general Page
ie.navigate CAGE

ie.Visible = True

While ie.Busy

    DoEvents

Wend


'Follow link to details page
For Each ele In ie.document.getElementsByTagName("a")
    If InStr(ele.innerText, "Details") > 0 Then ele.Click
Next

Do While ie.Busy Or _
    ie.readyState <> 4
    DoEvents
    Loop

'Pull Data

Dim count As Long
Dim erow As Long

Set HTML = ie.document

Set elements = HTML.getElementsByID(“detail_topsection”)

count = 0
For Each element In elements
    If element.className = “result” Then
        enter code hereerow = Sheet1.Cells(Rows.count, 1).End(xlUp).Offset(1, 0).Row
        Cells(erow, 1) = HTML.getElementsByTagName(“span”)(10).innerText
        Center code hereells(erow, 1) = HTML.getElementsByTagName(“span”)(14).innerText
        count = count + 1
    End If
Next element

End Sub

标签: excelvba

解决方案


Set elements = HTML.getElementsByID(“detail_topsection”)

应该

Set element = HTML.getElementByID(“detail_topsection”)  'no "s"

页面上的元素 ID 应该是唯一的,因此getElementByID返回单个元素(或不返回任何内容),而不是元素的集合,例如getElementsByTagName


推荐阅读