未找到getElementById

时间:2015-07-13 08:01:24

标签: excel vba excel-2010 spreadsheet

我正在从网页上删除一些数据,并希望在找不到一个ID时切换id

我试过了:

If IsError(Docx.getElementById("priceblock_ourprice").innerText) Then
    price = Docx.getElementById("priceblock_saleprice").innerText
Else
     price = Docx.getElementById("priceblock_ourprice").innerText
End If

但是,我IsError(Docx.getElementById("priceblock_ourprice").innerText) Object variable or With Block is not set.

时收到错误消息

任何建议,如何"赶上" Docx.getElementById("priceblock_ourprice").innerText的错误?

感谢您的回复!

2 个答案:

答案 0 :(得分:3)

尝试使用IsObject Funcion - > IsObject

在您的情况下IF IsObject(Docx.getElementById("priceblock_ourprice")) THEN (...)

答案 1 :(得分:1)

如果您尝试按ID定位元素,那么您对非破坏性捕获的选择是有限的,但您可以Set返回getElementById并检查无效。

dim el as MSHTML.IHTMLElement

on error resume next
set el = Docx.getElementById("priceblock_ourprice")
on error goto 0
If not el is nothing  Then
    price = Docx.getElementById("priceblock_ourprice").innerText
Else
    price = Docx.getElementById("priceblock_saleprice").innerText
End If

如果您按集合定位元素,则可以在访问其中一个属性(例如.innerText)之前遍历它们以查找第二个唯一标识符。