Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Access VBA automation能够将Word文档保存到Sharepoint,但不能保存Excel电子表格_Excel_Vba_Ms Access_Sharepoint_Ms Word - Fatal编程技术网

Access VBA automation能够将Word文档保存到Sharepoint,但不能保存Excel电子表格

Access VBA automation能够将Word文档保存到Sharepoint,但不能保存Excel电子表格,excel,vba,ms-access,sharepoint,ms-word,Excel,Vba,Ms Access,Sharepoint,Ms Word,我有一个Access数据库,可以创建文件并将其保存到内部网络上的Sharepoint。在两种情况下,这些文件是Word文档,保存到Sharepoint可以正常工作。其中两个文件是Excel电子表格,使用“保存”或“保存副本”保存它们不起作用。最后一个文件是PowerPoint,保存它也失败了 “保存”一词的用法如下所示: Set objWord = New Word.Application Set objDoc = objWord.Documents.Add objWord.Visible =

我有一个Access数据库,可以创建文件并将其保存到内部网络上的Sharepoint。在两种情况下,这些文件是Word文档,保存到Sharepoint可以正常工作。其中两个文件是Excel电子表格,使用“保存”或“保存副本”保存它们不起作用。最后一个文件是PowerPoint,保存它也失败了

“保存”一词的用法如下所示:

Set objWord = New Word.Application
Set objDoc = objWord.Documents.Add
objWord.Visible = True
Set objSelection = objWord.Selection
Set objRange = objDoc.Range

Creation of document

Dim SPAddress As String
SPAddress = GetSPAddress(iProjectId) & "ProjectFactSheet_" & sSiteName & "_" & Format(Now(), "yyyymmddhhnnss") & ".docx"
objDoc.SaveAs SPAddress
Set oExcelApp = CreateObject("Excel.Application")
oExcelApp.Visible = True
oExcelApp.AskToUpdateLinks = False
oExcelApp.DisplayAlerts = False
oExcelApp.Workbooks.Open ("c:\apps\" & strReportName)
SPAddress = GetSPAddress()
oExcelApp.ActiveWorkbook.SaveAs SPAddress & strReportName
Excel保存失败,如下所示:

Set objWord = New Word.Application
Set objDoc = objWord.Documents.Add
objWord.Visible = True
Set objSelection = objWord.Selection
Set objRange = objDoc.Range

Creation of document

Dim SPAddress As String
SPAddress = GetSPAddress(iProjectId) & "ProjectFactSheet_" & sSiteName & "_" & Format(Now(), "yyyymmddhhnnss") & ".docx"
objDoc.SaveAs SPAddress
Set oExcelApp = CreateObject("Excel.Application")
oExcelApp.Visible = True
oExcelApp.AskToUpdateLinks = False
oExcelApp.DisplayAlerts = False
oExcelApp.Workbooks.Open ("c:\apps\" & strReportName)
SPAddress = GetSPAddress()
oExcelApp.ActiveWorkbook.SaveAs SPAddress & strReportName
  • savecopyas也会得到一个错误
此操作失败,错误为无法访问文件名。文件可能已损坏,位于没有响应或只读的服务器上

Public Function GetSPAddress(Optional lngQuaID As Long) As String
    GetSPAddress = ""

    If IsNull(lngQuaID) Or lngQuaID = 0 Then
        GetSPAddress = DLookup("SPBasePath", "AppData")
    Else
        If IsNull(DLookup("[SPPath]", "QualificationLog", "[QuaID] = " & lngQuaID)) Then
            GetSPAddress = DLookup("SPBasePath", "AppData")
        Else
            GetSPAddress = DLookup("[SPPath]", "QualificationLog", "[QuaID] = " & lngQuaID)
        End If
    End If
End Function

我唯一能想到的建议是在打开报表时设置一个工作簿变量,这样就可以绝对确定要保存哪个文件(尽管这本身不会导致错误…)


Dim wb As Object'用于保存的路径是什么,它与工作字路径相比如何?SP文件夹的路径相同。只有文件名不同。请使用问题下的链接添加
GetSPAddress
的代码。我确实注意到,对于Word,您向该方法传递了一个值,但对于不起作用的代码,您没有传递值?如果
Debug.Print
Excel路径,您可以手动保存到该位置吗?是的,我可以手动保存到该位置。我尝试了此操作,但在运行时出现错误“1004”。无法访问该文件。请尝试以下操作之一:确保指定的文件夹存在。。。保存到的路径是https:\\eu001-sp.shell.com\sites\aaaaa 9233\TestForLIR\Test4.xls
https:\\
https://
?我能够使用相同类型的路径将excel中的SaveAs运行到Sharepoint库中,因此它可以工作……Tim说得对。我觉得很傻,但我用的是\而不是/。我一做出改变,效果就很好。谢谢