自动VBA加载IE并在登录屏幕上输入凭据

问题描述 投票:1回答:2

我真的为此感到挣扎,而且似乎无法使它正常工作。我想通过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控件

javascript excel vba automation
2个回答
1
投票

问题是您的IE设置。当您在不同的安全区域之间导航时,IE会打开浏览器的新实例,因此,您失去了IE对象。您可以通过在调试代码时检查ie对象来测试它,使用immidiate windown并键入?ie,在nothing]之后将是.navigate Url

请参阅我对另一个问题的回答,解决方案完全相同:click


0
投票

不确定您的问题在哪里。起初我不知道是什么:

© www.soinside.com 2019 - 2024. All rights reserved.