运行时错误424所需对象 – VBA + Internet Explorer = Weblogin
我正在尝试使用VBA和Internet Explorerlogin到网站。 这导致运行TIme错误424“对象需要”。
这是我的代码。 寻找你的专家意见。
Sub Website() Dim IE As Object, Doc As Object, UserName As Object, Password As Object, strCode As String Set IE = New InternetExplorerMedium IE.Visible = True IE.Navigate "http://appln.ABC.com/index.epl" Do While IE.ReadyState <> 4: DoEvents: Loop Set Doc = IE.Document Set UserName = Doc.getElementById("login_usr") UserName.Value = "ABCDE" Set Password = Doc.getElementById("login_password") Password.Value = "ABCDE" Set btnLogin = Doc.getElementById("Login") btnLogin.Click End Sub
你有没有尝试在这个例子中提出的方法?
使用VBA在网页中填写用户名和密码
我认为你需要
Set IE = CreateObject("InternetExplorer.Application")
在你的代码中,你实际上并没有创build一个对象,你只是声明它。
编辑
也许绕过你的Doc对象的使用:
Sub Website() Dim IE As Object, UserName As Object, Password As Object, strCode As String Set IE = New InternetExplorerMedium IE.Visible = True IE.Navigate "http://appln.ABC.com/index.epl" Do While IE.ReadyState <> 4: DoEvents: Loop Set UserName = IE.Document.getElementById("login_usr") UserName.Value = "ABCDE" Set Password = IE.Document.getElementById("login_password") Password.Value = "ABCDE" Set btnLogin = IE.Document.getElementById("Login") btnLogin.Click End Sub
在链接的例子中,他们只使用一个对象,似乎你不需要为你所做的每件事情创build对象。 所以,你可能会逃避:
Sub Website() Dim IE As Object Set IE = New InternetExplorerMedium IE.Visible = True IE.Navigate "http://appln.ABC.com/index.epl" Do While IE.ReadyState <> 4: DoEvents: Loop With IE.Document .getElementById("login_usr").Value = "ABCDE" .getElementById("login_password").Value = "ABCDE" .getElementById("Login").Click End With End Sub
您也可以添加第二个while while循环来处理就绪状态,就像那个链接的例子一样。
Sub website() Dim ie As Variant Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.navigate "http://appln.ABC.com/index.epl" Do While ie.readyState <> 4: DoEvents: Loop ie.document.getElementById("login_usr").Value = "ABCDE" ie.document.getElementById("login_password").Value = "ABCDE" ie.document.getElementById("Login").Click End Sub
我不知道如何,但当我设置
IE.Visible = False
我不再有错误了。 请尝试,如果可能的话解释为什么会发生..
- 尝试使用Java Apache POI读取文本Excel单元格
- VBA excel:对于..下一个不会通过选定的范围?
- 在Power Query(Get&Transform)Excel中使用ODC
- POI删除单元格的背景颜色
- Activeadmin与activeadmin-axlsx gem,获取bin / rails:6:警告:已经初始化常量APP_PATH错误
- 使用模糊匹配dynamic创build数据透视表
- 重复使用UserForm VBA代码在同一工作表中的多个dateselect器
- VBA – replace文本文件中的string与其他文件中的variables值
- 计算非连续重叠时间间隔的持续时间