VBA找不到文本框 - 可能是JavaScript隐藏框的问题

时间:2015-08-12 06:04:54

标签: javascript jquery excel vba excel-vba

我正在尝试设置一个VBA模块,该模块将自动登录到网站,导航到特定页面,并从Excel输入数据以检查数据是否允许。我已经到了最后一页,我将从Excel中插入数据,但实际上在更改网页上文本框的值时遇到了麻烦。我怀疑这是由单元格的JavaScript引起的问题。

<input type="text" onkeypress="getNMContext().handleTextBoxOnKeyPress(event);" onblur="handleTextBoxOnBlur(this, '',event);" onfocus="handleTextBoxOnFocus(this, '');" onchange="getNMContext().handleTextBoxOnChange(event);" style="width: 200px; color: rgb(0, 0, 0);" name="DISPLAY_SearchParameters_MemberID" id="DISPLAY_SearchParameters_MemberID_ID" maxlength="8" title="">

以上是我需要修改的一个字段的示例。使用

IE.document.getElementById("DISPLAY_SearchParameters_MemberID_ID").value = "text"

不更新字段,而是返回错误424,通知我需要一个对象(因此甚至没有检测到ID的框)。

即使给出ID,VBA也无法检测到文本字段的原因是什么?

我会张贴该框的图片,但我没有必要的声誉(我是新用户)。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果此文本框首先存储在iFrame中,您需要获取对此iFrame的引用,然后使用其ContentWindow属性:

Dim frame As Object
Dim textBox As Object

Set frame = IE.Document.getElementById("frame_id")
Set textBox = frame.contentWindow.Document.getElementById("DISPLAY_SearchParameters_MemberID_ID")
textBox.value = "text"