5

を使用してWebサイトからデータを抽出するマクロを作成しています。現在、のような要素構文を使用して、テーブルコンテンツから簡単に値を取得できますobj.getElementsByTagName("td").innerText。ただし、一部のセルにinnerText以外のデータがあると、問題が発生します。こんな感じです:

<img src="/images/amber_pending.gif" border="0" alt="Pending" title="Pending">

他の人から見つけた構文を使用して、「title」から属性値を抽出しようとしました。

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")。誰か助けてもらえますか?

4

1 に答える 1

5
Set imgObj = tdObj.getElementsByTagName("img")

画像のコレクションを返します(見つかった画像が1つしかない場合でも)。そのため、次のように使用して特定の画像をアドレス指定できます。

dataArray(i, j) = imgObj(0).getAttribute("title")
于 2012-11-09T23:24:11.937 に答える