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")
。誰かが私を助けることができますか?
感謝を。しかし、これもうまくいかないようです。それは、 "実行時エラー '91':オブジェクト変数またはWithブロック変数が設定されていません" dataArray(i、j)= imgObj(1).getAttribute( "title")。それ以外の理由はありますか? –
私はIXMLDOMNodeListがゼロベースだと思うので、 'imgObj(0).getAttribute(" title ")'は動作するはずです – barrowc
@barrowc - 良いキャッチです。私は0のものと1ベースのものを思い出すことはできません。 –