我有MAC ID列表。我试图找到所有供应商的详细信息。我试过一个,但我需要它直到A列结束(我提到的所有MAC ID)。如果找不到,那么只需跳过它就必须移到下一个循环并粘贴到下面。我做了一个。
td, th {
padding: 5px;
border: 1px solid;
}
答案 0 :(得分:0)
我会谦虚地建议您放弃.QueryTables
支持MSXML2.XMLHTTP
对象进行网页抓取。在VBA的检索网络数据的工具中没有更快更清洁的东西。
此代码要求您通过VBE的工具►参考命令将 Microsoft HTML对象库添加到项目中。
Sub retrieveMAC()
Dim htmlBDY As New HTMLDocument
Dim m As String, u As String, rw As Long, iTD As Long, ws As Worksheet
Set ws = ActiveSheet
With ws
For rw = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
m = UCase(Replace(Left$(.Cells(rw, 1).Value2, 8), Chr(45), vbNullString))
u = "http://www.coffer.com/mac_find/?string=" & m
With CreateObject("MSXML2.XMLHTTP")
On Error Resume Next
.Open "GET", u, False
.Send
If .Status <> 200 Then
Debug.Print .Status
GoTo CleanUp
End If
htmlBDY.body.innerHTML = vbNullString
htmlBDY.body.innerHTML = .responseText
With htmlBDY
For iTD = 0 To (.getElementsByTagName("td").Length - 1)
With .getElementsByTagName("td")(iTD)
If UCase(.innerText) = m Then
ws.Cells(rw, 9) = .NextSibling.innerText
Exit For
End If
End With
Next iTD
End With
End With
Next rw
End With
CleanUp:
Set htmlBDY = Nothing
End Sub