<div class="GHNF1GMDEI GHNF1GMDGI"><div class="GHNF1GMDJK">Reference</div></div>
<div class="GHNF1GMDGI"
<div class="GHNF1GMDJK">Reference</div>
<input type="text" class="GHNF1GMDGM" maxlength="64" style="width: 350px;">
我试图使用其他类标记等填充Web表单。但是它无法填充表单,并且发生错误,对象不支持此属性或方法。
我尝试了许多不同的方法:
Sub automaticformfilling()
Dim ie As InternetExplorer
Dim doc As MSHTML.HTMLDocument
Set ie = CreateObject("internetexplorer.application")
With ie
.Visible = True
.navigate "xxxxxx"
'Wait for loading
Do While .Busy
DoEvents
Loop
Do While .readyState <> 4
DoEvents
Loop
End With
Set doc = ie.document
Set fname = doc.getElementById("j_username")
fname.Value = "xxxx"
Set lastName = doc.getElementById("j_password")
lastName.Value = "xxxx"
doc.getElementsByName("btn_submit")(0).Click
'Set doc = ie.document
'Set invdate = doc.getElementsByClassName("GHNF1GMDEI")
'invdate.Value = "25"
Set refname = doc.getElementsByName("GHNF1GMDGM")
'.doc.getElementsByClassName ("GHNF1GMDGM")
refname.Value = "923456"
End Sub
请帮助我解决这个问题。
答案 0 :(得分:0)
您当前的错误是由于以下事实造成的:
Set refname = doc.getElementsByName("GHNF1GMDGM")
是一个集合,而不是单个元素,因此您不能这样做:
refname.Value = "923456"
您需要使用索引,例如
refname(0).Value = "923456"
除此之外,如果没有url或html,就不能说太多其他可能出错的内容。
旁注:
我会将页面加载的两个循环压缩为一个:
While .Busy Or .readyState < 4: DoEvents: Wend