0

我希望创建一个 VBA 脚本来检查网站并从课程中提取价格。我的问题有 2 个潜在的类“.kuSalePrice kuSpecialPrice”和“.kuSalePrice”。我创建了以下内容来检查类“.kuSalePrice”是否存在,如果不存在,则第二类并输出价格。

我在下面的行中收到以下错误

Worksheets("Sheet1").Range("C" & lRow).Value = result2.innerText

“未设置对象变量或块变量”

Sub PriceCheck()

Dim ie As InternetExplorer
Dim doc As HTMLDocument
Dim result As IHTMLElement
Dim result2 As IHTMLElement
Dim url As String
Dim lRow As Long

Set ie = New InternetExplorer

ie.Visible = True
lRow = 2
url = Worksheets("Sheet1").Range("B" & lRow).Value

Do Until url = ""
    ie.navigate url

    Do
        DoEvents
    Loop Until ie.readyState = READYSTATE_COMPLETE

    Set doc = ie.document

    Set result = doc.querySelector(".SalePrice")


    If IsObject(doc.querySelector(".SalePrice")) Then
    MsgBox "does exsist"
    Set result2 = result

    Else
    MsgBox "doesnt exsist"
    Set result2 = doc.querySelector(".SalePrice SpecialPrice")

    End If

    Worksheets("Sheet1").Range("C" & lRow).Value = result2.innerText

    lRow = lRow + 1
    url = Worksheets("Sheet1").Range("B" & lRow).Value
Loop

Cells.Replace What:="£", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False

End Sub
4

1 回答 1

0

我没有测试它,但我会尝试类似的东西:

If IsObject(doc.querySelector(".SalePrice")) Then
    Set result = doc.querySelector(".SalePrice")
    Worksheets("Sheet1").Range("C" & lRow).Value = result.innerText
ElseIf IsObject(doc.querySelector(".SalePrice SpecialPrice")) Then
    Set result = doc.querySelector(".SalePrice SpecialPrice")
    Worksheets("Sheet1").Range("C" & lRow).Value = result.innerText
End If
于 2018-05-10T19:29:22.650 回答