VBA将Enter键发送到HTMLInputElement

时间:2013-09-17 15:02:48

标签: internet-explorer vba automation

我希望这是一个简单的问题。我有一些代码,我加载一个网页,并在IE中的字段中输入一个数字。它如下:

Option Explicit

Private Sub GettingCashAvail()

Dim IE          As InternetExplorerMedium
Dim HTMLDoc     As HTMLDocument
Dim IEField     As HTMLInputElement

Set IE = New InternetExplorerMedium

IE.navigate "https://website.com/login.aspx"

While IE.Busy
    DoEvents
Wend

Do Until IE.statusText = "Done"
    DoEvents
Loop

Set HTMLDoc = IE.document

Set IEField = HTMLDoc.getElementById("ucGetAccountNumber_txtAccountNumber")

IEField.Value = "#########"

现在此字段支持按Enter键移至下一页。我可以为提交按钮调暗第二个对象然后执行类似IESubmit.Click之类的操作以输入信息并导航到新屏幕,但我想做的是以某种方式发送返回键。以下是我感兴趣的网页来源部分:

onkeypress="return clickButton(event,'ucGetAccountNumber_btnSubmit')"

您认为有什么方法可以简单地发送回车键吗?感谢您的建议,如果不是,我可以将提交按钮设置为第二个输入对象。

1 个答案:

答案 0 :(得分:1)

您可以使用:

IE.Visible = True
Application.SendKeys "~" '## send the "Enter" keystroke

但是在尝试使用SendKeys方法时,它们并不是非常可靠,大多数人会建议使用不同的方法。

我认为个人最好创建另一个对象变量并调用按钮的.Click方法,如您所示。