Установить загруженную книгу как активную книгу без фиксированного имени - PullRequest
0 голосов
/ 24 июня 2019

У меня есть макрос, который будет загружать Excel с веб-сайта.Работает до тех пор, пока не нажмете кнопку Открыть на сайте.Но файл Excel не открывается.Также мне нравится иметь переменную для вновь загруженного файла.Ниже приведен код, который я использовал.Удар в While Workbooks.Count <= w.

Sub download2()

Dim ie As Object
Dim myValue As Variant
Dim downloadBook As Workbook
Dim w As Long
w = Workbooks.Count

Set ie = CreateObject("INTERNETEXPLORER.Application")
    ie.navigate "https:www.safdsg.com"
    ie.Visible = True

Application.Wait (Now + TimeValue("00:00:05"))

    With ie.document

        .getElementById("AJS_DROPDOWN__15").Click

Application.Wait (Now + TimeValue("00:00:05"))

        .getElementById("currentExcelFields").Click

Application.Wait (Now + TimeValue("00:00:05"))

    End With

SendKeys "%{O}"

While Workbooks.Count <= w
    DoEvents
Wend

Set downloadBook = ActiveWorkbook

MsgBox "Completed"

End Sub

Также Do While ie.readyState = 4: DoEvents: Loop или Do Until ie.readyState = 4: DoEvents: Loop не работает в этом коде.Следовательно, я использовал application.wait.Пожалуйста, дайте мне знать, если что-то нужно добавить в ссылку, чтобы это работало.

1 Ответ

0 голосов
/ 24 июня 2019

Если он открывается по умолчанию в том же экземпляре Excel.Application, то, вероятно, это ActiveWorkbook или Workbooks(Workbooks.Count), и вы можете объявить переменную книги и назначить ее из нее.

Dim downloadBook as Workbook
Dim w as Long
w = Workbooks.Count
' code that downloads the workbook...
' ...
' 
SendKeys "%{O}"
' ## Wait until the new file has opened
While Workbooks.Count < w + 1
    DoEvents
Wend
Set downloadBook = ActiveWorkbook
' OR:
' Set downloadBook = Workbook(w+1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...