【问题标题】:Importing individual span value into excel将单个跨度值导入excel
【发布时间】:2016-08-29 12:25:06
【问题描述】:

大约 10 年没有接触过 VBA,并且刚刚开始使用它来提高工作效率和准确性。我要做的就是从 html5 跨度导入/复制单个值。

这是 HTML5(我希望这是您需要的唯一信息)并且我希望导入“FRANK”

<span class="defvalue" id="GivenName">FRANK</span>

我已经能够启动 IE 并登录到页面并进入包含我想要的信息的页面,但我不确定从那里去哪里,我尝试了下面的一些东西,希望它会就这么容易,但似乎并非如此。如您所见,非常成熟。

ieApp.Navigate "https://example.info.com/Details/" & Range("C6")
        Do While ieApp.Busy: DoEvents: Loop
        Do Until ieApp.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop
            Range("B1").Value = "Collecting Data..."

        Range("C10").Value = appIE.Document: .getElementsById ("GivenName")

任何帮助将不胜感激。我还希望从同一页面上的其他跨度中收集一些其他值。

谢谢,

弗莱奇

【问题讨论】:

  • 嗨,我想你应该看看这个关于 parsing HTML in VBA 的主题,它应该对你有用。
  • appIE.Document: .getElementsById ("GivenName") 这不会编译,是吗? appIE 不是您正在使用的对象的名称 ieApp 并且行中间的冒号使 .getElementsById 成为非限定引用...

标签: excel html vba


【解决方案1】:

你需要做的是获取ieApp.document.getElementById("GivenName")的innerHTML值

下面的代码将完成从https://example.info.com/Details/获取GivenName id 块中的值的工作

Dim ieApp As Object
Set ieApp = CreateObject("internetexplorer.application")

With ieApp
    .Navigate "https://example.info.com/Details/"
    .Visible = False
End With

Do While ieApp.Busy
    DoEvents
Loop

Set allRowOfData = ieApp.document.getElementById("GivenName")

Dim myValue As String
myValue = allRowOfData.innerHTML

MsgBox myValue

Set ieApp = Nothing

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多