5
我正在構建一個使用vba從網站中提取數據的宏。目前,我可以使用元素語法(如obj.getElementsByTagName("td").innerText
)輕鬆從表格內容中獲取價值。但是,當某些單元格中存在一些非innerText數據時,我遇到了麻煩。它是這樣的:從html獲取屬性字符串值
<img src="/images/amber_pending.gif" border="0" alt="Pending" title="Pending">
我嘗試使用語法我從別人發現提取「標題」屬性值:
For Each tbObj In doc.getElementsByClassName("report removeTdBorder")
i = 1
For Each trObj In tbObj.getElementsByTagName("tr")
If i >= 3 Then
j = 1
For Each tdObj In trObj.getElementsByTagName("td")
If j = 1 Then
Set imgObj = tdObj.getElementsByTagName("img")
dataArray(i, j) = imgObj.getAttribute("title")
Debug.Print imgObj.getAttribute("title")
ActiveCell.Offset(0, j) = dataArray(i, j)
ActiveCell.Offset(0, j).WrapText = False
Else
dataArray(i, j) = tdObj.innerText
Debug.Print i & ", " & j & ": " & dataArray(i, j)
ActiveCell.Offset(0, j) = dataArray(i, j)
ActiveCell.Offset(0, j).WrapText = False
End If
j = j + 1
Next tdObj
ActiveCell.Offset(1, 0).Activate
End If
i = i + 1
Next trObj
Next tbObj
但這一代碼進入錯誤每次和它說:「運行時間錯誤'438':對象不支持此屬性或方法「在行dataArray(i, j) = imgObj.getAttribute("title")
。有人能幫助我嗎?
感謝幫助。然而,看起來這個效果並不好。它表示對於dataArray(i,j)= imgObj(1).getAttribute(「title」),「運行時錯誤'91':對象變量或塊變量未設置」。有沒有其他原因? –
我認爲IXMLDOMNodeList是基於零的,所以'imgObj(0).getAttribute(「title」)'應該可以工作 – barrowc
@barrowc - 很好的結果。我永遠不會記得什麼是0和什麼是1 ... –