VBA雅虎登录

时间:2017-11-07 12:14:11

标签: excel vba excel-vba yahoo

我正在尝试在VBA上创建一个宏来登录雅虎。 但是我也很难提交密码部分,因为用户名/密码在不同的页面上。

我一直收到错误

  

运行时错误'424'需要对象

.Document.getElementById("login-passwd").Value行。

    Sub WebLogin()
Set IE = CreateObject("InternetExplorer.Application")

With IE
    .Visible = True
    .Navigate "https://login.yahoo.com/"
    Do Until .ReadyState = READYSTATE_COMPLETE
        DoEvents
    Loop
    .Document.getElementById("login-username").Value = "username"
    .Document.getElementById("login-signin").Click
    Do Until .ReadyState = READYSTATE_COMPLETE
        DoEvents
    Loop
    'Application.Wait (Now + TimeValue("0:00:10"))
    .Document.getElementById("login-passwd").Value = "password*"
    .Document.getElementById("login-signin").Click
End With

End Sub

我认为找不到HTML元素,但我已经尝试添加一个延迟,另一个代码用于等待页面加载,没有什么可以工作。

以下是两个字段的特定HTML代码。

<input name="username" tabindex="1" class="phone-no " id="login-username" autofocus="true" type="text" placeholder="Insira seu e-mail" value="" autocorrect="off" autocapitalize="none">
<input type="password" id="login-passwd" name="password" placeholder="Senha" autofocus="">

任何sugestions?

1 个答案:

答案 0 :(得分:0)

运行时错误“424”被引发,因为Cursor rawQuery (String sql, String[] selectionArgs) rawQuery("SELECT Train_name FROM Train_list WHERE Train_no = ?", new String[] {message.substring(0,(message.length()-3)}); 不存在,并且您尝试访问其IE.Document.getElementById("login-passwd")

.Value中的错误处理是使用标签完成的,并且可以很快变得非常难看。

您需要定义标签和VBA语句

让我们定义这个子程序:

On Error

现在应将您的代码修改为:

Sub WaitAndFeed(ByRef IE, ByVal field As String, ByVal value As String)
    On Error GoTo NoObjErr
    While Not (IE.Document.getElementById(field) Is Nothing)
    NoObjErr:
        DoEvents
        IE.Document.getElementById(field).Value = value
        IE.Document.getElementById("login-signin").Click
    Wend
End Sub