如何解决使用 VBA 从 Excel 表格下载 Google Drive 文件
下面的超链接出现在 Excel 工作表的单元格中。如果点击它会打开并显示一个文件(授予任何拥有链接的人的权限)
解决方法
Google 云端硬盘上的 URLDownloadToFile
- 文件夹
C:\Test
必须存在才能使此示例正常工作。 - 有关
URLDownloadToFile
的详细信息,请尝试搜索SO
或Google
。
代码
Option Explicit
' !!!VBA7-declaration might be incorrect!!!
#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 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
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。