首页 > 解决方案 > 无法连接到 OneDrive 中的 Excel 文件

问题描述

我一直在寻找和寻找,但没有运气。有没有办法使用 Excel VBA 从保存在 OneDrive 中的另一个 Excel 工作簿中导入主文件数据?

提前致谢。

标签: excelvbaonedrive

解决方案


A.) 如果您有一个 Excel 工作簿存储在您的 PC 本地但在您的 OneDrive 同步文件夹中。那么您可以使用以下 VBA 代码来处理一个驱动器文件。一旦文件可用, SO上已经有许多例程来导入数据。

Sub Test()
Dim fn As String
fn = "Your File " 'change file name

fn = Environ("onedrive") & "\" & fn

'check to see if it exists
If Len(fn) > 0 Then
    Debug.Print fn
End If
'... do something.......
End Sub

B.)获取 文件如果您在 PC 上安装了适用于 Windows 的 OneDrive 桌面应用程序,则可以使用“获取文件”功能通过访问 OneDrive 网站从另一台计算机访问该 PC 上的所有文件。如果网络位置包含在 PC 的库中或映射为驱动器,您甚至可以访问它们。当您远程浏览 PC 的文件时,您可以下载它们的副本以进行处理。您还可以在幻灯片放映中流式传输视频和查看照片。要远程访问 PC 上的文件,请确保要访问的 PC 已打开并连接到 Internet。OneDrive 还需要在该 PC 上运行,并且必须选择“获取文件”设置。有关更多详细信息,请参阅在您的 PC 上获取文件

C.) ShareOint 上的文件 - VBA 方法 如果您的文件在 SharePoint 上。OneDrive 不会将共享文件同步到本地并同步。在这种情况下,VBA 代码可在 SO VBA 上通过@Sid29从 OneDrive 下载文件

D.)REST APIs - Microsoft Graph 下一段使用 API 详细阐述了另一种情况。

OneDrive REST API 是 Microsoft Graph API 的一部分,它允许你的应用连接到存储在 OneDrive 和 SharePoint 中的内容。REST API 在 OneDrive、OneDrive for Business、SharePoint 文档库和 Office 组之间共享,以使您的应用可以使用相同的代码灵活地读取和存储任何这些位置的内容。

这些 REST API 是 Microsoft Graph 的一部分,Microsoft 服务的通用 API。

对于在 Microsoft Graph 之外使用 OneDrive API 的现有解决方案,或针对 SharePoint Server 2016 的解决方案,请参阅直接终结点差异以了解有关阅读本文档的更多上下文。Microsoft Graph 中的 OneDrive 和 SharePoint

E.) 获取 onedrive 的特定在线文件的 url 可能很困难。微软社区已经报道了一种情况,他们建议使用 VBA 代码下载没有 URL 的文件。它是来自 Web 应用程序的报告 xlsx。因为 URL 不是文件的路径,它是一个“文件请求链接”,它处理单点登录验证,然后显示下载弹出窗口。虽然它取决于网站,但文章中提到的代码使用 IE 浏览器成功执行。本文中提到的代码可以进行试验。据我所知,没有其他方法可以通过 VBA 加载在线 onedrive 文件。


推荐阅读