gpt4 book ai didi

excel - 使用 ADODB 连接打开存储在 SharePoint 上作为数据源的 Excel 文件

转载 作者:行者123 更新时间:2023-12-02 16:12:17 32 4
gpt4 key购买 nike

我正在尝试使用以下 VBA 代码片段打开 Excel 文件作为数据源:

Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=" & path & "\" & VFile & ";" & _
"Extended Properties=""Excel 8.0; HDR=No; IMEX=1;"""
.Open
End With

path 时,这将按预期工作。变量的类型为C:\Folder 。但是,如果我想引用与当前文件位于同一文件夹中的 Excel 文件,并使用

path = ThisWorkbook.path

当前工作簿位于 SharePoint 上存储的文件夹中,path然后将包含以下形式的内容

https://sp.foobar.com/folder

尝试使用此路径进行连接会导致 Method 'Open' failed错误。将路径破解为 WebDAV 路径告诉我该文件已被锁定或我无权读取它。

有人可以帮忙吗?

当我手动设置path时到Drive:\Folder形式,一切都很好,但我无法使用 ThisWorkbook.path 自动生成此路径或类似,如果文件存储在 SharePoint 上,并且我希望该解决方案是“可移植的”,只要所有相关文件都位于同一文件夹中,就可以在驱动器上的任何位置工作。

最佳答案

连接到共享点上的 Excel 文件时,您必须更改路径中的一些详细信息。具体来说,删除开头的“http:”,用“/”替换“\”,并用“%20”替换任何空格。

以下 VBA 代码检查文件路径是否包含“http”,如果包含,则执行上述替换并返回 ADODB 可以读取的字符串 (ExcelWorkbook)。

如果 InStr(ThisWorkbook.FullName, "http:") = 0 那么 ExcelWorkbook = ThisWorkbook.FullName Else ExcelWorkbook = Replace(Replace(Replace(ThisWorkbook.FullName, "/", "\"), "",“%20”),“http:”,“”)

我不知道为什么进行此更改后会起作用,但它确实有效!

关于excel - 使用 ADODB 连接打开存储在 SharePoint 上作为数据源的 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28434783/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com