excel - 使用 VBA 从 Excel 工作表下载 Google Drive 文件

标签 excel vba google-drive-api

下面的超链接出现在 Excel 工作表的单元格中。如果单击,它将打开并显示一个文件(向任何知道链接的人授予权限)

如何使用 Excel vba 将链接文件下载到本地文件夹?

最佳答案

Google 云端硬盘上的 URLDownloadToFile

  • 文件夹 C:\Test 必须存在,此示例才能正常工作。
  • 有关 URLDownloadToFile 的更多信息,请尝试搜索 SOGoogle

代码

Option Explicit

#If VBA7 Then
    Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
        Alias "URLDownloadToFileA" (ByVal pCaller As LongPtr, _
        ByVal szURL As String, ByVal szFileName As String, _
        ByVal dwReserved As LongPtr, ByVal lpfnCB As LongPtr) As LongPtr
#Else
    Private Declare Function URLDownloadToFile Lib "urlmon" _
        Alias "URLDownLoadToFileA" (ByVal pCaller As Long, _
        ByVal szURL As String, ByVal szFileName As String, _
        ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#End If

Function downloadFile( _
    ByVal FileURL As String, _
    ByVal FilePath As String) _
As Boolean
    Const ProcName As String = "downloadFile"
    On Error GoTo clearError
    
    URLDownloadToFile 0, FileURL, FilePath, 0, 0
    downloadFile = True

ProcExit:
    Exit Function
clearError:
    Debug.Print "'" & ProcName & "': Unexpected Error!" & vbLf _
              & "    " & "Run-time error '" & Err.Number & "':" & vbLf _
              & "        " & Err.Description
    Resume ProcExit
End Function

Sub downloadGoogleDrive()
    
    Const UrlLeft As String = "http://drive.google.com/u/0/uc?id="
    Const UrlRight As String = "&export=download"
    
    Const FileID As String = "17bw2KgzD1ifcA7rdXdxiN9bN70g8jnMO"
    Const FilePath As String _
        = "C:\Test\Type1 and Type 2 errors - Atyati Temp.jpg"
    
    Dim Url As String: Url = UrlLeft & FileID & UrlRight
    
    Dim wasDownloaded As Boolean
    wasDownloaded = downloadFile(Url, FilePath)
    If wasDownloaded Then
        MsgBox "Success"
    Else
        MsgBox "Fail"
    End If

End Sub

关于excel - 使用 VBA 从 Excel 工作表下载 Google Drive 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66147047/

相关文章:

vba - VBA TRIM 函数 Excel 与工作表函数的等价物

Excel - 基于选择创建图表的宏

excel - 有没有办法让这段代码更短/excel工作表更改

java - 使用服务器帐户模拟用户以访问其 Google Drive 时出现 401 Unauthorized 错误

ios - 获取下载进度Google云端硬盘

ios - 将文件从 Google Drive 共享到 Dropbox,反之亦然

excel - 保护工作表但取消保护文本输入形状

vba - 如何在用户表单列表框中显示过滤后的行

excel - 使用 Excel 2010 通过存储过程读取/写入 SQL Server 2008 数据库

excel - 命令按钮点击计数器,可调整​​并链接到形状