[英]vba macro innertext of html page access
Option Explicit
Sub Sample()
Dim objIe As InternetExplorerMedium
Dim xobj As Variant
Dim links As Variant
Dim link As String
Dim lnk As Variant
Dim rc As Integer
Set objIe = New InternetExplorerMedium
objIe.Visible = True
objIe.navigate "C:\Users\SOURABH\Desktop\test.html"
Do While objIe.Busy And Not objIe.readyState = 4
Application.StatusBar = "Loading.."
DoEvents
Loop
MsgBox objIe.document.body.innerHTML
Set xobj = objIe.document.getElementByTagName("myDiv")
Set xobj = xobj.getElementsByClassName("myTable").Item(0)
Set xobj = xobj.getElementsByClassName("data")(0)
For Each lnk In links
MsgBox "lnk got accessed"
If lnk.className = "myTable" Then
Sheets("Sheet1").Cells(3, 1).Value = lnk(0).innerText
Exit For
End If
Next
MsgBox xobj.innerText
Set xobj = Nothing
objIe.Quit
Set objIe = Nothing
End Sub
而我的HTML:
<div id="myDiv">
<table class="myTable">
<tbody>
<tr>
<td>Text1:</td>
<td class="data"><strong>0.51</strong></td>
</tr>
<tr>
<td>Text2:</td>
<td class="data"><strong>2199</strong></td>
</tr>
</tbody>
</table>
</div>
我可以使用MsgBox命令查看內部文本,但是在內部文本中獲取類名時出現錯誤:
對象在set xobj = objIe.document.getElementByTagName(“ myDiv”)行中不支持此屬性
請幫助我找到一種獲取“數據”類的內部文本的方法
您正在嘗試通過TAGNAME(在MyDiv的情況下為DIV)訪問它。
我認為您想要的是:
Set xobj = objIe.document.getElementById("myDiv")
編輯其他問題
我嘗試這樣做,但是我在Mac上:(如果要使用GUESS,我會說您應該嘗試類似的方法:
For Each obj In xobj.getElementsByClassName("data")
MsgBox obj
Next
還可以使用調試器在MsgBox上斷開,可以看到對象中有什么
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.