2015-04-15 2 views
1

Этот вопрос, кажется, был задан досуждениями раз, однако ни одно из решений, которые я нашел, похоже, не может решить мою проблему.VBA Automation - Загрузка файла с использованием IE 11 (64 бит)

Поскольку на веб-странице используется токен сертификата, я вынужден вручную войти на веб-страницу, прежде чем активировать скрипт VBA, что не представляет проблемы. Важно отметить, что ссылка на отчет динамична, поэтому я не могу напрямую связать себя с самим докладом, и поэтому мне приходится перемещаться по веб-странице с помощью моего сценария. Ниже вы найдете скрипт я использую, чтобы найти окно я вошел на веб-страницу с:

Sub WebPageOpen() 

Dim HTMLDoc As HTMLDocument 
Dim oHTML_Element As IHTMLElement 

On Error GoTo Err_Clear 

Set objShell = CreateObject("Shell.Application") 
IE_count = objShell.Windows.Count 
For X = 0 To (IE_count - 1) 
    On Error Resume Next ' sometimes more web pages are counted than are open 
    my_url = objShell.Windows(X).document.Location 
    my_title = objShell.Windows(X).document.Title 

    If my_title Like "MY Webpage name" Then 'compare to find if the desired web page is already open 
     Set IE = objShell.Windows(X) 
     marker = 1 
     Exit For 
    Else 
    End If 
Next 

If marker = 0 Then 
    MsgBox ("Webpage is not open - Please log on to webpage") 
    Exit Sub 
Else 
End If 

Do 
' Wait till the Browser is loaded 
Loop Until IE.readyState = READYSTATE_COMPLETE 

' I have removed all my navigation commands here,as it would just be bloating the query. It clicks the link and the Save/open ribbon appears in IE. 

End sub 

Может кто-нибудь помочь мне с каким-то решением, как я могу взаимодействовать с Открыть/Сохранить как ленты, которая появляется при загрузке файла?

ответ

0

Эта лента называется Извещение бар.

Вы можете использовать Alt + N для фокусировки на панели уведомлений. А затем отправьте {tab} ключ, чтобы перейти к определенной кнопке.

С помощью VBA вы можете использовать Autohotkey.dll или AutoItX3.dll для отправки этих комбинаций горячих клавиш.

  1. Добавить ссылку на AutoItX3.dll (как для 32-битных и 64-битных ОС)
  2. Append следующий

    множество Х = CreateObject ("AutoItX3.Control")
    Х. отправьте! N {tab} {down 2} {enter} 'Это для Save-as

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