【问题标题】:VBA winhttp equivalent for local file本地文件的 VBA winhttp 等效项
【发布时间】:2015-08-13 20:01:39
【问题描述】:

所以我目前有一个 sub 可以复制存储在我们的 Intranet 上的文档并将它们保存到我们的共享驱动器。现在,我想做完全相同的事情,但文件存储在本地用户计算机上,而不是 Intranet 上。我怎么能这样做?

Sub intranetPullFile(link, extent, strFile)    
 Set WinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
 If WinHttp Is Nothing Then Set WinHttp = CreateObject("WinHttp.WinHttpRequest")
 WinHttp.Open "GET", link , False
 WinHttp.Send
 arrResponse = WinHttp.ResponseBody
 Set WinHttp = Nothing
 Set oADO = CreateObject("ADODB.Stream")
 oADO.Type = 1
 oADO.Open
 oADO.Write arrResponse
 oADO.SaveToFile strFile, 2
 oADO.Close
end sub

我尝试按原样使用他们的 C:.... 地址作为文件的链接,但我收到一个错误:该 URL 未使用可识别的协议。

所以,我标记了一个答案,因为它完成了我需要做的事情,谢谢! --- 仍然很好奇是否有“本地文件等效”来说明 winhttp 的工作原理,但我现在可以继续前进,所以我很好。再次感谢。

【问题讨论】:

标签: vba adodb winhttp


【解决方案1】:

您可以使用CopyFile() 复制和指定新名称。如果您将True 作为第三个参数传递,它也可以覆盖现有文件:

With CreateObject("Scripting.FileSystemObject")
    .CopyFile strSourceFile, strDestFile, True  
End With

【讨论】:

    【解决方案2】:

    VBA 可以在没有 FSO 的情况下在一行中做到这一点:

    FileCopy fullSourcePathandName, fullDestinationPathandName
    

    【讨论】:

    • type mismatch: 'FileCopy' --- 我 cstr()'d 两个变量并且仍然有不匹配的错误。将尝试对源和目标位置进行硬编码,以查看它是变量问题还是文件复制本身。
    猜你喜欢
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 2021-03-02
    相关资源
    最近更新 更多