确定浏览器下载文件,Excel和VBA的位置

时间:2014-12-15 15:52:59

标签: html excel vba csv

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

我从一个我无法控制的网站获取信息。在选择页面上的某些选项后,该网站将下载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应该是正确的,但我忘记了如何根据这些变量创建路径。另外,我并不总是正确的,所以我想要一种方法来询问浏览器它将存储文件的位置。

3 个答案:

答案 0 :(得分:3)

接受的答案不正确。

只有在IE(7,9,11) - >设置 - >视图下载 - >选项 - >默认下载位置中未更改默认下载位置时才会正确。

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

HomeDrive和用户主页驱动器可能不是一回事

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

VBA(立即)

print Environ(“HomeDrive”)

H:\

print Environ(“UserProfile”)

C:\ Users \用户名

打印RegKeyRead(“HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ Main \ Default Download Directory”)

d:\ TmpStorage \ IEDownLoads

print RegKeyRead(“HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ User Shell Folders {374DE290-123F-4565-9164-39C4925E467B}”)

%USERPROFILE%\下载

当然预先定义了这个功能:

if Int(boxA.x) == Int(boxB.x) && Int(boxA.y) == Int(boxB.y)
{
  //We have equality
}

答案 1 :(得分:1)

这是我的版本:

    ' 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_USER\Software\Microsoft\Internet Explorer\Main\Default Download Directory")
        GoTo suite_registre

erreur_registre:
        CheminTelecharge = .RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{374DE290-123F-4565-9164-39C4925E467B}")

suite_registre:
        CheminTelecharge = Replace(CheminTelecharge, "%USERPROFILE%", Environ("userprofile"))
        On Error GoTo 0
    End With

答案 2 :(得分:0)

Environ("HOMEDRIVE")& Environ("HOMEPATH") & "\Downloads"

这适用于Windows 7.您可能需要编写一些内容来检查Windows版本并相应地更改格式。

这取决于下载是否保存在该用户的默认“下载”文件夹中。