填写网页表单,无需从vba提交按钮

时间:2016-01-22 11:48:53

标签: excel forms vba internet-explorer dom

我想填写表单并获取表单的响应值。我需要的表格可以在www.1ratio.nl

找到

现在这个表单没有提交按钮。我的vba中有一个代码,当有可用的提交按钮时,该代码可以正常工作,但现在我还是没有得到网站的回复。

编辑此外,是否有一个选项可以不创建一个新的IE屏幕,其中已经有一个屏幕可用?那么它在最后一种情况下会创建一个新的标签吗?

编辑2:我想可以使用VBA向网站添加提交按钮。这是可能的,这是我想要的解决方案吗?

代码:

Sub fillform()

zero = 1
one = 2
two = 3
three = 4
four = 1

Dim IE As Object

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate "http://www.1ratio.nl"

Application.StatusBar = "Submitting"

While IE.busy
    DoEvents
Wend

delay 1
IE.document.getelementbyid("ContentPlaceHolder1_Leeftijd01DropDownList").Value = zero
delay 1
IE.document.getelementbyid("ContentPlaceHolder1_Leeftijd12DropDownList").Value = one
delay 1
IE.document.getelementbyid("ContentPlaceHolder1_Leeftijd23DropDownList").Value = two
delay 1
IE.document.getelementbyid("ContentPlaceHolder1_Leeftijd34DropDownList").Value = three
delay 1
IE.document.getelementbyid("ContentPlaceHolder1_Leeftijd48DropDownList").Value = four
delay 1
MsgBox (IE.document.getelementbyid("ContentPlaceHolder1_AantalLabel"))

End Sub

Private Sub delay(seconds As Double)
Dim endtime As Date
endtime = DateAdd("s", seconds, Now())
Do While Now() < endtime
    DoEvents
Loop

End Sub

1 个答案:

答案 0 :(得分:0)

我发现我可以通过使用以下代码触发HTML代码选择框上的onchange事件来解决这个问题:

IE.document.getelementbyid("ContentPlaceHolder1_Leeftijd01DropDownList").fireevent ("onchange")