2015-01-31 2 views
1

Я пытаюсь использовать интернет-проводник в excel VBA. Когда пользователь нажимает кнопку, его переводят в gmail, где он должен аутентифицироваться. После аутентификации он может отправлять данные в веб-службу. Вот мой кодАутентификация от excel VBA

Dim AppUrl As String 
AppUrl = "https://mail.google.com" 
Call NavigateToURL(AppUrl) 

Public Sub NavigateToURL(argURL) 
Dim LoginURL As String 
Dim ServiceUrl As String 
Dim objIE As Object 
Dim URl As String 

LoginURL = "https://mail.google.com/mail/u/0/#inbox" 


Set objIE = CreateObject("InternetExplorer.Application") 

With objIE 
.Visible = True 
.Silent = False 
.Navigate argURL 
While IE.Busy 
DoEvents 
Wend 
Do 
    If objIE.LocationURL()= LoginURL Then 
     MsgBox("Successfully Authenticated") 
     Call requestPost 'to post excel data to a webservice 

    Exit Do 
    Else 
     MsgBox("Authentication failed") 

    End If 
Loop While objIE.LocationURL() <> (LoginURL) 

End With 

End Sub 

Но проблема я лицо, как только как https://mail.google.com нагрузки полностью, если условие проверяется и отображает проверку подлинности сообщений не удалось. Я хочу, чтобы программа дождалась загрузки https://mail.google.com/mail/u/0/#inbox. Есть ли способ сделать это?

ответ

1

Вместо использования

While IE.Busy 
DoEvents 
Wend 

попробовать Application.Wait Now + TimeSerial(0, 0, 4) вместо

Смежные вопросы