1

我想要使​​用 VBA 的 excel 从 Internet 下载文件。该文件是一个包含员工列表信息的数据库。我希望文件保存在 C:\Users\"name of user"\FCMMIS\

这是我想要实现的分步过程:

  1. Excel 使用 VBA,从指定的网址下载文件。
  2. *下载的文件保存在 C:\Users\"用户名"\FCMMIS*
  3. Excel 通过 VBA 与下载的数据库链接,以获取可能需要的数据。

另请注意,有问题的 excel 文件将由不同的人使用笔记本电脑。我不确定是否可以将文件保存在“用户”文件夹中,或者是否需要授予权限才能允许保存。

我知道有更好的解决方案,比如编写一个完整的应用程序,但由于要求,我坚持使用 excel 和 VBA。

编辑(与第 3 部分一起完成):

3.1:下载数据库后,excel文件从员工表中获取记录,并将它们打印到同一个excel文件的新工作表中。

3.2:打印的数据然后用于工作表中的各种功能。

但是,我正在争论仅操作数据库本身中的数据还是让它从创建的工作表中工作是否更有效。

4

2 回答 2

2

以下代码来自Matt Vidas 的一篇文章

等待您对第 3 点的回答,没有范围?

Function Download_File(ByVal vWebFile As String, ByVal vLocalFile As String) As Boolean
    Dim oXMLHTTP As Object, i As Long, vFF As Long, oResp() As Byte

    'You can also set a ref. to Microsoft XML, and Dim oXMLHTTP as MSXML2.XMLHTTP
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
    oXMLHTTP.Open "GET", vWebFile, False 'Open socket to get the website
    oXMLHTTP.Send 'send request

    'Wait for request to finish
    Do While oXMLHTTP.readyState <> 4
    DoEvents
    Loop

    oResp = oXMLHTTP.responseBody 'Returns the results as a byte array

    'Create local file and save results to it
    vFF = FreeFile
    If Dir(vLocalFile) <> "" Then Kill vLocalFile
    Open vLocalFile For Binary As #vFF
    Put #vFF, , oResp
    Close #vFF

    'Clear memory
    Set oXMLHTTP = Nothing
End Function



Sub Testing()
    Download_File "http://example.org/yourDataBaseFile", "C:\Users\" & Environ("username") & "\yourDataBaseFile"
End Sub
于 2012-10-10T09:28:04.220 回答
0

如果有问题的文件是一个工作簿,你可以这样做:

With Workbooks.Open("http://example.org/yourfile.xls")
    .SaveAs "C:\Users\example\yourfile.xls"
    .Close
End With
于 2012-10-10T08:54:47.513 回答