如何解决该文档必须包含内容类型属性-运行时错误-214721638180041403
我使用以下VBA代码将文件保存到SharePoint文件夹(onedrive同步)。由于某些我不知道的原因而关闭,因此未显示SharePoint属性
ActiveWorkbook.SaveAs fileName:=spath & e
其中spath是SharePoint路径,e是文件名。
但是,如果将文件手动保存到同一文件夹,则会显示属性。
感谢您的帮助
的屏幕截图解决方法
如果无法将文件直接保存到SharePoint,则可以尝试一种变通方法-将书籍保存在本地磁盘上(例如,在Temp目录中),然后沿您已知的路径复制此文件,并将其连接为计算机上的磁盘。之后,可以删除临时文件(或将其保留一段时间作为安全网),并可以断开磁盘连接。像这样:
Sub storeToSharePoint(ByVal sPath As String,sFolderName As String,sFilename As String)
Dim FSO As Object,NW As Object,sTempPath As String,ToPath As String,newFileName As String,sDrive As String
Rem First store ActiveWorkbook to Temp with name sFilename
sTempPath = Environ("Temp")
If Right(sTempPath,1) <> Application.PathSeparator Then
sTempPath = sTempPath + Application.PathSeparator
End If
ActiveWorkbook.SaveAs Filename:=sTempPath & sFilename
Rem And now - copy to SharePoint:
sDrive = AvailableDriveLetter() ' Try get drive-letter
If sDrive = vbNullString Then
Debug.Print "No free letter to connect network location - file '" _
& sFilename & "' will not be copied"
Else
Set NW = CreateObject("WScript.Network")
Call NW.MapNetworkDrive(sDrive,sPath)
Set FSO = CreateObject("scripting.filesystemobject")
ToPath = sDrive & "\" & sFolderName & "\" & sFilename
FSO.CopyFile Source:=sTempPath & sFilename,Destination:=ToPath
Call NW.RemoveNetworkDrive(sDrive)
Rem If need Kill temp-file
Rem FSO.DeleteFile sTempPath & sFilename
Set FSO = Nothing
Set NW = Nothing
End If
End Sub
这里sPath是您的spath-SharePoint网站的根文件夹; sFolderName-SharePoint中文件夹的路径(您不想将所有文件保存到根文件夹,而是将它们放得更深一些,对吧?),sFilename是您的“ e”。
您还需要AvailableDriveLetter函数。这非常简单,它多次发布在Internet上,没有任何变化(Google给出了三十万个链接)。我把它放在这里:
Function AvailableDriveLetter() As String
Dim i As Integer
AvailableDriveLetter = vbNullString
With CreateObject("Scripting.FileSystemObject")
For i = Asc("D") To Asc("Z")
If Not .DriveExists(Chr(i)) Then
AvailableDriveLetter = Chr(i) & ":"
Exit For
End If
Next
End With
End Function
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。