我有正确的代码导航到一个网站,我想开始填充下拉列表和字段等。按照@Bond的建议,我一直在尝试的代码是:
Sub GetQuote()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
IE.navigate ("website")
IE.Visible = True
Do
DoEvents
Loop Until IE.readystate = 4
Dim e
Set e = IE.document.getElementsByClassname("id of button")(1)
e.Click
Application.Wait (Now + TimeValue("00:00:02"))
Do
DoEvents
Loop Until IE.readystate = 4
Dim z As Object
Set z = IE.document.getElementbyid("vehicleYearOfManufactureList")
z.SelectedIndex = 4
End Sub
这用于用值2012填充第一个下拉框,但现在我只是得到一个运行时错误,需要对象。这可能是因为以前点击的链接用于在相同的当前窗口中打开,而现在它以某种方式打开了一个全新的窗口?我只是对相同的代码如何工作感到困惑,然后不工作,假设没有对它引用的源代码进行任何更改。
在此错误的调试中突出显示的行是:Set z = IE.document.getElementbyid("vehicleYearOfManufactureList")。根据我下面的评论,这是一个"运行时424:object"所需的错误
您可以通过几种方式做到这一点。如果您知道该项的索引,则可以使用<select>
元素的SelectedIndex
属性直接设置它。在您的情况下,"2012"
是下拉列表中的第4项:
Set e = IE.document.getElementbyid("vehicleYearOfManufactureList")
e.SelectedIndex = 4
或者,您可以在下拉菜单中迭代所有<option>
元素以找到您正在寻找的值,然后将其Selected
属性设置为True
:
Set e = IE.document.getElementbyid("vehicleYearOfManufactureList")
Dim o
For Each o In e.Options
If o.Value = "2012" Then
o.Selected = True
Exit For
End If
Next