Mat*_*ham 3 excel sharepoint adodb
我正在尝试使用以下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
Run Code Online (Sandbox Code Playgroud)
当path变量属于类型时,这可以按预期工作C:\Folder.但是,如果我想在与当前文件相同的文件夹中引用excel文件,并使用
path = ThisWorkbook.path
Run Code Online (Sandbox Code Playgroud)
当前工作簿位于SharePoint上存储的文件夹中,path然后将包含表单的某些内容
https://sp.foobar.com/folder
尝试使用此路径进行连接会导致Method 'Open' failed错误.将路径黑客攻入WebDAV路径会告诉我该文件已锁定或我无权读取该文件.
有人可以帮忙吗?
当我手动设置path为Drive:\Folder表单时,一切都很好,但ThisWorkbook.path如果文件存储在SharePoint上,我无法使用或类似地自动生成此路径,并且我希望解决方案在任何地方工作的意义上都是"可移植的"在驱动器上,只要所有相关文件都在同一个文件夹中.
小智 5
连接到sharepoint上的excel文件时,您必须更改路径中的一些详细信息.具体来说,在开头删除"http:",用"/"代替"\",并用"%20"代替任何空格.
以下VBA代码检查文件路径是否包含"http",如果是,则执行上述替换并返回ADODB可以读取的字符串(ExcelWorkbook).
If InStr(ThisWorkbook.FullName, "http:") = 0 Then ExcelWorkbook = ThisWorkbook.FullName Else ExcelWorkbook = Replace(Replace(Replace(ThisWorkbook.FullName, "/", "\"), " ", "%20"), "http:", "")
我不知道为什么它会在这个改变时起作用,但它确实有效!
| 归档时间: |
|
| 查看次数: |
2593 次 |
| 最近记录: |