Автоматизировать диалог сохранения для IE9 (vba)

Я пытаюсь загрузить лист excel с веб-сайта. До сих пор я дошел до нажатия кнопки загрузки автоматически (веб-скребок). Теперь ie9 выдает сохранение как экран. Как мне автоматизировать это?

Вы можете попробовать это, поскольку он работает для меня в IE9:

Для ниже показано скачать

  1. Скопируйте файл C:\Windows\System32\UIAutomationCore.dll для пользователей. Документы, т.е. C:\Users\admin\Documents затем добавьте ссылку на файл UIAutomationClient в ваш файл макроса.
  2. Вставьте под кодом в свой модуль:

      Option Explicit Dim ie As InternetExplorer Dim h As LongPtr Private Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As LongPtr, ByVal hWnd2 As LongPtr, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongPtr Sub Download() Dim o As IUIAutomation Dim e As IUIAutomationElement Set o = New CUIAutomation h = ie.Hwnd h = FindWindowEx(h, 0, "Frame Notification Bar", vbNullString) If h = 0 Then Exit Sub Set e = o.ElementFromHandle(ByVal h) Dim iCnd As IUIAutomationCondition Set iCnd = o.CreatePropertyCondition(UIA_NamePropertyId, "Save") Dim Button As IUIAutomationElement Set Button = e.FindFirst(TreeScope_Subtree, iCnd) Dim InvokePattern As IUIAutomationInvokePattern Set InvokePattern = Button.GetCurrentPattern(UIA_InvokePatternId) InvokePattern.Invoke End Sub 

Попробуйте в конце.

 'This is a working code for vba in excel 2007 to open a file 'But you need to add the "UIAutomationCore.dll" to be copied 'from "C:\Windows\System32\UIAutomationCore.dll" into the 'path "C:\Users\admin\Documents" 'The path where to copy may be different and you can find it when you check on 'the box for UIAutomationClient - the location is given under it. 'Tools-references Option Explicit Dim ie As InternetExplorer Dim h As LONG_PTR Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As LONG_PTR, ByVal hWnd2 As LONG_PTR, ByVal lpsz1 As String, ByVal lpsz2 As String) As LONG_PTR Sub click_open() Dim o As IUIAutomation Dim e As IUIAutomationElement Dim sh Dim eachIE Do Set sh = New Shell32.Shell For Each eachIE In sh.Windows ' Check if this is the desired URL ' Here you can use your condition except .html ' If you want to use your URL , then put the URL below in the code for condition check. ' This code will reassign your IE object with the same reference for navigation and your issue will resolve. If InStr(1, eachIE.LocationURL, "") Then Set ie = eachIE Exit Do End If Next eachIE Loop Set o = New CUIAutomation h = ie.Hwnd h = FindWindowEx(h, 0, "Frame Notification Bar", vbNullString) If h = 0 Then Exit Sub Set e = o.ElementFromHandle(ByVal h) Dim iCnd As IUIAutomationCondition Set iCnd = o.CreatePropertyCondition(UIA_NamePropertyId, "Open") Dim Button As IUIAutomationElement Set Button = e.FindFirst(TreeScope_Subtree, iCnd) Dim InvokePattern As IUIAutomationInvokePattern Set InvokePattern = Button.GetCurrentPattern(UIA_InvokePatternId) InvokePattern.Invoke End Sub 

Я отправил ярлыки в IE11.

Примечание: код не будет работать, как вы ожидаете, если IE не является активным окном на вашем компьютере, поэтому он не будет работать в режиме отладки. Ниже приведены сочетания клавиш и способы их отправки.

  • Клавиша быстрого вызова: Alt + S
  • VBA: Application.SendKeys "%{S}"
  • Excel: двухцветные цветовые шкалы
  • Сохранение нескольких листов в .pdf
  • Кнопка добавления / вычитания Excel VBA
  • как объединить повторяющиеся строки и суммировать значения 3 столбца в excel
  • VBA делает ячейки обязательными на основе предыдущей записи ячейки
  • Как добавить пользовательскую вкладку Ribbon с помощью VBA?
  • Как удалить строки в Excel на основе критериев с помощью VBA?
  • VLOOKUP с несколькими критериями, возвращающими значения в одной ячейке
  • Как создать и записать в txt-файл с помощью VBA
  • Как оптимизировать функцию VBA в Excel
  • Правильное обращение с ошибками в VBA (Excel)
  • Давайте будем гением компьютера.