使用VBA控制IE登录网站

时间:2015-06-20 22:42:23

标签: excel vba excel-vba internet-explorer

我是新手,但我正在练习,在我看来,登录我学院的网站应该是世界上最容易的事情。对?好吧,这让我发疯了。

具体来说,程序失败了   page.Document.getElementById("edit-name").Value = 1234

运行时错误424“需要对象”

另外,当我输入“page”时,我不确定这是否相关。 VBA编辑器有助于提供选项列表,我选择了Document。当我键入第二个“。”得到“page.Document。”我没有得到进一步的选项列表。

这是完整的程序,感谢您的帮助

Public Sub MyLogin()

'This uses early binding
'In menu at top of page - Tools...Reference.... Microsoft Internet Controls and Microsoft HTML Object Library must both be ticked



 Dim page As InternetExplorer
 Set page = New InternetExplorer
 page.Visible = True

 Dim MyLink As Object

'Login at Institute website
 page.Navigate "http://www.actuaries.org.uk/"


 Do While page.Busy Or page.ReadyState <> 4
   DoEvents
 Loop



 For Each MyLink In page.Document.Links
   If InStr(MyLink.href, "/user") Then MyLink.Click: Exit For
 Next MyLink

 Do While page.Busy Or page.ReadyState <> 4
    DoEvents
 Loop

 'Are now at the login page
 'Enter username, password and click


  page.Document.getElementById("edit-name").Value = 1234
  page.Document.getElementById("edit-pass").Value = "01/01/1977"
  page.Document.getElementById("edit-submit").Click




  End Sub

1 个答案:

答案 0 :(得分:1)

  

具体来说,程序在page.Document.getElementById(&#34; edit-name&#34;)失败。值= 1234

该行没有错。

我能想到的一个原因是你的url循环没有被执行。为避免这种情况,请直接导航到相关的Sub Sample() Dim sUrl As String: sUrl = "https://www.actuaries.org.uk/user" Dim ie As Object Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.navigate sUrl Do While ie.readystate <> 4: DoEvents: Loop ie.Document.getElementById("edit-name").Value = 1234 End Sub 。这个修剪版本适合我。

enter image description here

size_t