不重复-从IE下载文件后如何在Window Explorer中设置文件路径

时间:2019-02-19 20:18:06

标签: excel vba

在VBA单击另存为之后,出现窗口,我希望能够设置文件路径。我尝试使用ChDir()并使用winhttp直接下载,但是对此都无效。我的代码来源为:https://www.mrexcel.com/forum/excel-questions/502298-need-help-regarding-ie-automation-using-vba-3.html

我认为在文件资源管理器的顶部窗口(路径窗口)中,找出任何如何设置文件路径的帮助都会有用。

***这不是一个重复的问题。在此网站上无法进行WINHTTP下载。

以下是我目前正在尝试的操作,但不会更改文件浏览器窗口中的文件路径,而只会在“文件名”窗口中添加文件路径,而不会更改文件的保存位置。

Private Sub Save_As_Set_Filename(ByRef ZipfileName)
    Dim hwnd As Long
    Dim timeout As Date
    Dim fullFilename As String

    'Find the Save As window, waiting a maximum of 10 seconds for it to appear
    timeout = Now + TimeValue("00:00:10")
    Do
        hwnd = FindWindow("#32770", "Save As")
        DoEvents
        Sleep 300
    Loop Until hwnd Or Now > timeout

    If hwnd Then
        SetForegroundWindow hwnd
        'Find the child DUIViewWndClassName window
       hwnd = FindWindowEx(hwnd, 0, "DUIViewWndClassName", vbNullString)
    End If

    If hwnd Then
        SetForegroundWindow hwnd
        'Find the child DirectUIHWND window
        hwnd = FindWindowEx(hwnd, 0, "DirectUIHWND", "")
    End If

    If hwnd Then
        'Find the child FloatNotifySink window
        hwnd = FindWindowEx(hwnd, 0, "FloatNotifySink", "")
    End If

    If hwnd Then
        'Find the child ComboBox window
        hwnd = FindWindowEx(hwnd, 0, "ComboBox", "")
    End If

    If hwnd Then
        'Find the child Edit window
        hwnd = FindWindowEx(hwnd, 0, "Edit", "")
    End If

    If hwnd Then
        ZipfileName = Get_Window_Text(hwnd)

        'If specified, ensure folder ends with \
        folder = Environ("USERPROFILE") & "\Downloads\"
        If folder <> "" And Right(folder, 1) <> "\" Then folder = folder & "\"
        fullFilename = folder & ZipfileName 

        'Populate the Edit window with the full file name
        Sleep 300
        SetForegroundWindow hwnd
        SendMessageByString hwnd, WM_SETTEXT, Len(fullFilename ), fullFilename 
    End If

End Sub

0 个答案:

没有答案