使用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