将下载的工作簿设置为没有固定名称的活动工作簿

时间:2019-06-24 13:38:26

标签: excel vba

我有一个宏,可以从网站上下载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: LoopDo Until ie.readyState = 4: DoEvents: Loop在此代码中也不起作用。因此,我使用了application.wait。请让我知道是否需要添加任何参考以使其正常工作。

1 个答案:

答案 0 :(得分:0)

假定默认情况下它在同一Excel.Application实例中打开,则可能是ActiveWorkbookWorkbooks(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)
相关问题