确定浏览器将在哪里下载文件,excel和VBA



首先,我承认这应该很容易,但我只是没有看到答案。

我正在从我无法控制的网站获取信息。在页面上选择一些选项后,网站将下载一个CSV文件。我已经准备好了下载之前的所有内容。

dim IE as InternetExplorer
dim doc as HTMLDoc
' setup the page
' get page to generate CSV
' now i need to go find the file and read it in
' Where is it?

我知道我可以创建一个对话框并要求用户导航到该文件。但是,我正在与不懂计算机的人打交道,并要求他们查找文件效果不佳。

我知道 %homedir %homepath \downloads 应该是正确的,但我忘记了如何基于这些变量创建路径。另外,我并不肯定这总是正确的,所以我想要一种方法来询问浏览器它将在哪里存储文件。

接受的答案不正确。

仅当 IE(7,9,11)->设置->查看下载->选项->默认下载位置未更改默认下载位置时,它才是正确的。

接受的答案甚至不提供 Windows 下载位置或浏览器下载位置(根据主题标题中的要求。

此外,HomeDrive和用户Home Drive可能不是一回事

从下面的输出中可以看出,Windows下载文件夹与IE下载文件夹不同,并且主驱动器不同从用户主驱动器(配置文件):

首先预定义此函数:

    Public Function RegKeyRead(s_RegKey As String) As String
      Dim myWS As Object
        On Error Resume Next
        Set myWS = CreateObject("WScript.Shell")   'access Windows scripting
        RegKeyRead = myWS.RegRead(s_RegKey)        'read key from registry
    End Function

在 VBA 中立即测试 (Ctrl + G)

    print Environ("HomeDrive")    
    'C:
    print Environ("UserProfile")   
    'C:UsersUserName
    print RegKeyRead("HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMainDefault Download Directory")
   'D:TmpStorageIEDownLoads
    print RegKeyRead("HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell Folders{374DE290-123F-4565-9164-39C4925E467B}")
    '%UserProfile%Downloads
这是我

的版本:

    ' Recherche le répertoire de téléchargement pour IE. Si pas trouvée : on récupère la clée "User Shell Folders"
    With CreateObject("WScript.Shell")
        On Error GoTo erreur_registre
        CheminTelecharge = .RegRead("HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMainDefault Download Directory")
        GoTo suite_registre
erreur_registre:
        CheminTelecharge = .RegRead("HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell Folders{374DE290-123F-4565-9164-39C4925E467B}")
suite_registre:
        CheminTelecharge = Replace(CheminTelecharge, "%USERPROFILE%", Environ("userprofile"))
        On Error GoTo 0
    End With
Environ("HOMEDRIVE")& Environ("HOMEPATH") & "Downloads"

这在Windows 7上对我有用。您可能需要编写一些内容来检查Windows版本并相应地更改格式。

这取决于下载内容保存在该用户的默认"下载"文件夹中。

最新更新