【发布时间】:2021-10-12 10:49:28
【问题描述】:
我越来越清楚 VBA 不能很好地处理 Sharepoint/OneDrive 的文件操作。我有以下代码:
Sub TestSaves()
Dim fName, fNameNoEx, SaveName As String
Dim fldr As FileDialog
CurrPath = ActiveDocument.Path
'CurrPath = "C:\temp"
If Left(CurrPath, 4) = "http" Then
PathSep = "/"
Else
PathSep = "\"
End If
FileNumber = FreeFile
OutputFile = CurrPath & PathSep & "fred.txt"
MsgBox OutputFile
Open OutputFile For Output As #FileNumber
Print #FileNumber, "Hello World"
Close #FileNumber
End Sub
当我的CurrPath = ActiveDocument.Path 处于活动状态时,我收到运行时错误 52(错误的文件名或编号)。在这种情况下,CurrPath 看起来像:
当我的CurrPath = "C:\temp" 处于活动状态时,它可以正常工作。
我希望能够将另一个文件保存在与原始文档相同的位置,无论它是在本地还是在 OneDrive/Sharepoint 上。有什么建议吗?
【问题讨论】:
-
不确定,但我猜
Open方法只能从文件系统打开文件,而不能从 sharpoint/https。 -
@Pᴇʜ 那么我可以使用其他方法吗?
-
这只是一个猜测,也许有人可以证实这一点,或者你可以做一些研究来证实这一点。但无论如何,您可以将文件从 SharePoint 签出到本地临时文件夹,使用您的 VBA 代码和upload it again to sharepoint 对其进行编辑。 • 或者Map a network drive to a SharePoint library 可以解决您的问题。
标签: vba sharepoint save onedrive