Как загрузить файл из Internet Explorer с помощью VBA

Я пытаюсь загрузить книгу Excel из Internet Explorer 11, и когда я нажимаю на ссылку, появляется это всплывающее сообщение:

введите описание изображения здесь

Я попытался использовать sendkeys «% s», и это не сработало. Я не могу использовать код для загрузки файла из Интернета без использования IE, потому что URL-адрес – это сайт интрасети из моей компании.

Sub Site() Dim IE As Object Set IE = CreateObject("InternetExplorer.application") With IE .Visible = True .Navigate "http://asint010/IntegradorProfit/Pages/Relatorios/FluxoSolicitacao.aspx" While .Busy Or .ReadyState <> 4 DoEvents Wend .document.All("ctl00_ContentPlaceHolder1_btnexportar").Click While .Busy Or .ReadyState <> 4 DoEvents Wend 'here I don't know what to do End With End Sub 

Я использую этот код для загрузки файла. Вам необходимо изменить код в соответствии с вашими языковыми настройками. Также вы можете удалить некоторые строки функций объявления, которые вам не нужны.

 Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Declare PtrSafe Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String) As Long Declare PtrSafe Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Declare PtrSafe Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Declare PtrSafe Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Declare PtrSafe Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hWnd As Long) As Long Declare PtrSafe Function SetFocus Lib "user32.dll" (ByVal hWnd As Long) As Integer Sub Site() Dim IE As Object Set IE = CreateObject("InternetExplorer.application") With IE .Visible = True .Navigate "http://asint010/IntegradorProfit/Pages/Relatorios/FluxoSolicitacao.aspx" While .Busy Or .ReadyState <> 4 DoEvents Wend .document.All("ctl00_ContentPlaceHolder1_btnexportar").Click While .Busy Or .ReadyState <> 4 DoEvents Wend 'here I don't know what to do hpass = IE.hWnd DownloadFile (hpass) End With End Sub Sub DownloadFile(h As Long) Dim o As IUIAutomation Dim e As IUIAutomationElement Dim iCnd As IUIAutomationCondition Dim Button As IUIAutomationElement Dim InvokePattern As IUIAutomationInvokePattern Set o = New CUIAutomation h = FindWindowEx(h, 0, "Frame Notification Bar", vbNullString) If h = 0 Then Exit Sub Set e = o.ElementFromHandle(ByVal h) Set iCnd = o.CreatePropertyCondition(UIA_NamePropertyId, "Save") Set Button = e.FindFirst(TreeScope_Subtree, iCnd) Set InvokePattern = Button.GetCurrentPattern(UIA_InvokePatternId) InvokePattern.Invoke Application.Wait (Now + TimeValue("0:00:05")) Set iCnd = o.CreatePropertyCondition(UIA_NamePropertyId, "Close") Set Button = e.FindFirst(TreeScope_Subtree, iCnd) Set InvokePattern = Button.GetCurrentPattern(UIA_InvokePatternId) InvokePattern.Invoke End Sub 
  • VBA - проверка флажка в IE
  • Код работает во время F8, но не при нормальной работе
  • VBA IE одобряет загрузку в диалоговом окне
  • VBA, чтобы опустить как всплывающее окно из Internet Explorer при загрузке файла xls
  • Отправка Excel пользователю через ASP.NET
  • письмо от excel vba до IE
  • IE Automation VBA Excel
  • Excel VBA для ввода данных в Интернете с IE и Loop Through Rows
  • Excel vba Выбор опции из веб-страницы IE (ошибка)
  • Открытие отличных документов из Интернета неуклюже
  • Таблицы CheckShop
  • Interesting Posts

    Использование цикла для вставки изображений в Word с помощью Excel VBA

    OpenXML C # – Что определяет имя «sheet.xml» в структуре открытых офисных файлов?

    Макро вставить строку над любой существующей строкой, в которой есть данные

    Оставить даты как строки, используя функцию read_excel из pandas в python

    Почему элементы управления WinForms отключены, когда пользователь увеличивает масштаб в Excel?

    Циклическая ссылка – это функция, определенная пользователем. VBA excel

    Добавить лист в существующий файл excel

    Формула Excel VBA с динамическим диапазоном не работает

    Код, не удаляющий каждую нецифровую строку

    Ошибка PHPExcel при чтении расчетного значения

    Печать ячейки штрих-кода, но также соседней ячейки

    Экспорт отчета SSRS для улучшения с помощью замораживающей панели

    Разделение данных в одном столбце Excel

    Excel условное форматирование с пробелами и Today ()

    Как сделать лист excel в java

    Давайте будем гением компьютера.