使用Excel VBA设置javascript输入值(不带选项值)

使用Excel VBA设置javascript输入值(不带选项值),javascript,ajax,vba,excel,Javascript,Ajax,Vba,Excel,形势 我正在尝试使用Excel中的VBA自动登录和搜索网站。我能够打开IE、导航、登录并进入搜索页面。该网站有一个列表框,其中包含使用AJAX动态添加的选项。代码如下所示: <select id="listArray" multiple="" name="listArray" onchange="deSelectAll();" size="13" style="width: 324px"> <option value="172743306">Bob Smith (bob.

形势

我正在尝试使用Excel中的VBA自动登录和搜索网站。我能够打开IE、导航、登录并进入搜索页面。该网站有一个列表框,其中包含使用AJAX动态添加的选项。代码如下所示:

<select id="listArray" multiple="" name="listArray" onchange="deSelectAll();" size="13" style="width: 324px">
<option value="172743306">Bob Smith (bob.smith@gmail.com)</option>
<option value="116696948">Abby Hernandez (ahernandez@ymail.com)</option>

或者类似的,没有问题。我希望
getElementsByTagName
有一些属性可以用来查找显示文本(我的情况下的名称),或者有一种简单的方法来搜索代码。任何解决此问题的想法都将不胜感激。

如果getElementsByTagName有效,那么querySelectorAll()也可能有效,在这种情况下,您可以执行“选择选项[name='user']”来查找选项。您可以循环列表中的选项:每个选项都有一个.Text和一个.Value属性。找到匹配的文本属性后,相应地设置该值。或者将select的selectedIndex设置为选项的索引(从零开始),使用
IE.document.getelementbyid(“listArray”)
而不是
IE.document.getElementsByTagName(“select”)
,并按照Tim的建议循环通过选项来获取文本和值属性。感谢您的所有评论。使用
getElementByID
成功返回该框,但我不确定如何循环检查每个选项的
.Text
。读了这本书,我不知道该怎么做。如何从选择中访问选项集合?
Dim s

Set s = IE.document.getElementById("listArray")
SetSelectByText s, "Bob Smith"



Sub SetSelectByText(sel, txt)
Dim l As Long, x As Long
    l = sel.Options.Length
    For x = 0 To l - 1
        If sel.Options(x).Text Like "*" & txt & "*" Then
            sel.selectedIndex = x
            Exit For
        End If
    Next x
End Sub
Dim s

Set s = IE.document.getElementById("listArray")
SetSelectByText s, "Bob Smith"



Sub SetSelectByText(sel, txt)
Dim l As Long, x As Long
    l = sel.Options.Length
    For x = 0 To l - 1
        If sel.Options(x).Text Like "*" & txt & "*" Then
            sel.selectedIndex = x
            Exit For
        End If
    Next x
End Sub