Sub amazon()
Dim x As Long
Dim y As Long
Dim doc As HTMLDocument
Dim htmTable As HTMLTable
Dim Elements As IHTMLElementCollection
Dim Element As IHTMLElement
Dim bf As String
Dim str As String
Dim af As String
Dim title As String
Dim prc()
Dim SrtTemp As Variant
Dim i As Long, q As Long
Dim j As Long
Dim n As Long
n = Sheets("temp").Cells(Rows.Count, 5).End(xlUp).Row
For q = 7 To n
Sheets("temp").Cells(q, 5) = ""
Sheets("temp").Cells(q, 6) = ""
Next q
str = ""
str = Sheets("temp").Cells(1, 4)
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", "http://www.amazon.in/s/ref=sr_nr_n_0?fst=as%3Aoff&rh=n%3A976419031%2Cn%3A1805560031%2Ck%3A" & str & "&keywords=" & str & "&ie=UTF8&qid=1437023564&rnid=976420031", ""
.send
Do: DoEvents: Loop Until .readyState = 4
Set doc = New MSHTML.HTMLDocument
doc.body.innerHTML = .responseText
Set Elements = doc.getElementsByClassName("s-item-container")
x = Elements.Length
'' Debug.Print x
ReDim prc(0 To x)
z = 7
y = 0
For Each Element In Elements
title = Element.Children(1).innerText
'' Debug.Print title
If InStr(UCase(title), UCase(str)) Then
Sheets("temp").Cells(z, 5) = title
Price = Element.Children(2).Children(0).Children(0).innerText
If InStr(UCase(Price), UCase("offer")) = 0 Then
bf = Price
'' Debug.Print bf
prc(y) = Trim(CDbl(bf))
On Error Resume Next
'' Debug.Print prc(y)
Sheets("temp").Cells(z, 6) = prc(y)
Else
'' bf = Element.Children(2).Children(3).Children(0).Children(3).innerText
bf = Price
'' Debug.Print bf
prc(y) = Trim(CDbl(Right(bf, 9)))
Sheets("temp").Cells(z, 6) = prc(y)
'' Debug.Print prc(y)
End If
y = y + 1
z = z + 1
End If
Next Element
Set Elements = Nothing
.abort
On Error Resume Next
End With
End Sub
当我调试时,我收到错误 Run-time error '91': Object variable or With block variable not set at this line title = Element.Children(1).innerText 请帮我解决这个问题。
我在我的 Excel 工作表中使用 amazon 作为宏。我使用的是 excel 2016,当我调试此宏时出现此错误。所以请提供解决此问题的解决方案。
如果我使用 Set title = Element.Children(1).innerText 那么我会收到 Object required 错误。
我是 Vba 的新手,所以请帮我解决这个问题。