使用'elementbyID'进行搜寻时,如果ID不存在,如何返回值0?

时间:2018-08-13 19:27:44

标签: excel vba excel-vba web-scraping

你好,我下面有一些代码可以从网站上抓取数据。

我正在苦苦挣扎的是该网站上并不总是存在 元素ID(很好)-但是,在这种情况下,我希望值只是要返回为£0。

相反,我得到了“运行时错误” 424”对象。

这是因为我的ID“ X123”不在网站上。

任何帮助将不胜感激。

Option Explicit

子getdata()

Dim wb As Object
Dim i As Integer
Dim sURL As String
Dim getprice As Object
Dim myValue As String


For i = 8 To Sheets("Sheet1").Range("B34").Value
    Set wb = CreateObject("internetExplorer.Application")

    sURL = Cells(i, 1)
    wb.Navigate sURL
    wb.Visible = False

    Do While wb.Busy = True Or wb.ReadyState <> 4: DoEvents: Loop

    Set getprice = wb.Document.getElementById("X123")

    myValue = getprice.innerText
    Sheets("Sheet1").Cells(i, 2).Value = myValue
    wb.Quit
    Set wb = Nothing

Next i

结束子

1 个答案:

答案 0 :(得分:4)

添加一些错误处理

On Error Resume Next
Set getprice = wb.Document.getElementById("X123")
On Error GoTo 0

If getPrice Is Nothing Then 
    myValue = "£0"  '<=Assuming £ is included and not formatted in sheet
Else
    myValue = getprice.innerText
End If