Buduję makro, aby wyodrębnić dane ze strony internetowej przy użyciu vba. Obecnie mogę łatwo uzyskać wartość z zawartości tabeli za pomocą składni elementu, takiej jak obj.getElementsByTagName("td").innerText
. Jednakże, gdy w niektórych komórkach znajdują się dane nieinternaukowe, pojawia się problem. To jest tak:Uzyskaj wartość ciągu atrybutu z html
<img src="/images/amber_pending.gif" border="0" alt="Pending" title="Pending">
próbowałem wyodrębnić wartość atrybutu z „tytułem” używając składni znalazłem z innymi:
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
Ale ten kod idzie błąd za każdym razem, a ona powiedziała: „Run-time błąd "438": Obiekt nie obsługuje tej właściwości lub metody "w linii dataArray(i, j) = imgObj.getAttribute("title")
. Czy ktoś może mi pomóc?
Dzięki za pomoc. wydaje się jednak, że ten nie działa również. napisano "Błąd czasu wykonania" 91 ": Zmienna obiektowa lub Z ustawioną zmienną blokową" dla dataArray (i, j) = imgObj (1) .getAttribute ("title"). czy jest jakikolwiek inny powód? –
Myślę, że IXMLDOMNodeList ma wartość zero, więc 'imgObj (0) .getAttribute (" title ")' powinno działać – barrowc
@barrowc - good catch. Nigdy nie pamiętam, co to jest 0- i co jest oparte na ... –