【问题标题】:vba macro innertext of html page accesshtml页面访问的vba宏内部文本
【发布时间】:2015-10-31 16:25:37
【问题描述】:
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") 行中不支持此属性

请帮我找到一种方法来获取类“数据”的内部文本

【问题讨论】:

  • 我很好奇你为什么要使用 vba 来访问 html dom?
  • 实际上我正在尝试做一些自动化来获得新邮件警报的通知,而无需手动登录邮件服务器。请建议更好的选项来访问 html 源代码。您的建议总是值得赞赏的。

标签: html vba innertext


【解决方案1】:

您正试图通过 TAGNAME 访问它,在 MyDiv 的情况下,它是 DIV。

我想你想要的是:

Set xobj = objIe.document.getElementById("myDiv")

编辑附加问题
我试过这样做,但我在 Mac 上 :( 如果我要 GUESS,我会说你应该尝试类似:

For Each obj In xobj.getElementsByClassName("data") 
    MsgBox obj 
Next 

同样使用调试器在MsgBox上打断,可以看到对象里面有什么

【讨论】:

  • 嘿,你能帮我获取字符串“Text1:”和“Text2:”吗?提前致谢。
  • 我已经为你做了一个尝试
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-26
  • 1970-01-01
  • 2016-07-20
  • 2019-11-04
  • 1970-01-01
  • 2020-12-23
  • 2021-04-23
相关资源
最近更新 更多