0

我在 HTML 网页中有以下代码,我正在尝试通过 vba 引擎使用 html 对象库从该标记中提取值:

<input name="txtAdd_Line1" disabled="disabled" size="30" maxLength="50" value="123 N 1ST ST"/>

我想我必须使用.getelementsbytagnameor .getelementsbyname,但我不确定如何获取价值。有没有人有任何想法?

4

2 回答 2

1

这是一个带有注释的示例,替换为您的实际地址:

Sub Example()
    'Declare needed variables
    Dim ie, elements
    Dim x As Long
    'Create IE Applction
    Set ie = CreateObject("InternetExplorer.Application")
    'Navigate to the website
    ie.navigate "C:\test.html" 'Substitute your actual address
    'Wait for website to finish loading
    Do While ie.ReadyState <> 4
    Loop

    'Find the elements
    Set elements = ie.document.getelementsbyName("txtAdd_Line1")
    'Display the value of each returned element
    For x = 0 To elements.Length - 1
        MsgBox elements(x).Value
    Next
    'Quit IE
    ie.Quit
End Sub

根据您的评论,很可能只是查看文档并没有检索到您想要的树的实际层,试试这个:

Set HTMLDoc = ie.document.frames("MainFrame").document 
With HTMLDoc 
    'This returns an (object) which contains an array of all matching elements
    a = .getElementsByName("txtAdd_Line1")
end with
For x = 0 to a.length
    msgbox a(x).value
next
于 2012-10-01T16:43:18.777 回答
0

您可以使用 CSS 选择器input[name='txtAdd_Line1']。这表示带有带有 valueinput属性的标签的元素。name'txtAdd_Line1'

CSS 选择器:

CSS 选择器

您使用例如的.querySelector方法应用 CSS 选择器document

Msgbox ie.document.querySelector("input[name='txtAdd_Line1']").innerText
于 2018-06-25T19:00:47.643 回答