我真的为此感到挣扎,而且似乎无法使它正常工作。我想通过VBA使用Automation做很多事情,但是我遇到了第一个障碍。
这是我的代码,应该可以自我解释;
Sub login()
Const Url$ = "(INTERNAL INTRANET WORK SITE I CANNOT SHARE)"
Dim UserName As String, Password As String
UserName = "TEST"
Password = "Password"
Dim ie As Object
Set ie = New InternetExplorerMedium
With ie
.navigate Url
.Visible = True
Application.Wait (Now + TimeValue("00:00:02"))
Dim oLogin As Object, oPassword As Object
Set oLogin = .document.getElementsByName("username")(0)
Set oPassword = .document.getElementsByName("password")(0)
oLogin.Value = UserName
oPassword.Value = Password
.document.forms(0).Submit
End With
End Sub
这里是HTML:
<TD background=/frontend/images/greenback.gif width=302><INPUT maxLength=32 value="" name=username> </TD>
<TD background=/frontend/images/greenback.gif width=302><INPUT maxLength=32 type=password value="" name=password> </TD>
<TD background=/frontend/images/greenback.gif width=302><INPUT type=submit value="Login now" name=submit> </TD>
从理论上讲,这应该正确吗?我在这条线上出现错误:
Set oLogin = .document.getElementsByName("username")(0)
错误消息:运行时错误462:远程服务器计算机不存在或不可用
有什么想法吗?IE版本11.737.17763.0Excel 2016VBA中的参考Microsoft Internet控件
问题是您的IE设置。当您在不同的安全区域之间导航时,IE会打开浏览器的新实例,因此,您失去了IE对象。您可以通过在调试代码时检查ie
对象来测试它,使用immidiate windown并键入?ie
,在nothing
]之后将是.navigate Url
请参阅我对另一个问题的回答,解决方案完全相同:click
不确定您的问题在哪里。起初我不知道是什么: