使用VBA来控制IElogin到网站

我是新手,但是我在练习,而且在我看来,login我研究所的网站应该是世界上最简单的事情。 对? 好吧,这让我发疯。

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

运行时错误424“所需的对象”

此外,我不知道这是否是相关的,当我键入“网页”。 VBA编辑器有助于提供选项列表,并select“文档”。 当我键入第二个“。” 得到“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 

具体来说,程序在page.Document.getElementById(“edit-name”)处失败。Value = 1234

这条线没什么问题。

我能想到的一个原因是你的For循环没有执行。 为了避免这种情况,直接导航到相关的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