簡體   English   中英

html頁面訪問的vba宏innertext

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM