2017-07-11 257 views
0

这是我第一次使用VBA。我有一个命令按钮,应该将文件保存为我的共享点在线文档页面。我可以使用“excel服务”并手动保存到excel中的文档页面,但是当我在VBA中尝试相同时,它说我没有权限。下面是我使用的代码,任何建议将非常感谢!无法使用VBA将文件保存到Sharepoint Online(权限错误)

Private Sub CommandButton1_Click() 

    Dim path as string 
    dim filename1 as string 

    path = "https://xxxxxx.sharepoint.com/sites/xxxxx/Shared Documents" 
    filename1 = Range("B3").text 
    activeworkbook.SaveAs FileName:=path & filename1 & ".xlsx", _ 
          FileFormat:=xlopenxmlworkbook 

End Sub 
+0

@OP是否确实为您解决了这个问题? –

+0

它做到了!非常感谢,非常感谢您的帮助。 – sbvt802

回答

1

如果您当前的文件是在同一文件夹作为目标,你想保存的,试试这个变化对于path定义:

path = "https://xxxxxx.sharepoint.com/sites/xxxxx/Shared Documents/" 

在你的代码中缺少最终/是导致FileName参数是无效的,因为path & filename1 & ".xlsx"计算结果为

https://xxxxxx.sharepoint.com/sites/xxxxx/Shared Documents[filename1].xlsx 

其中M如果权限在​​文件夹中没有限制,那么您会在该位置写入一个名称不正确的Excel工作簿。


替代解决方案


潜在您的问题的另一个解决方案。在要保存新Excel文件的位置保存一个空的工作簿。打开空的Excel文件,并在那里运行你的宏。在path行更改为:

path = ActiveWorkbook.Path & "\" 

试试这个,看看它的工作原理来代替。这是我如何解决Sharepoint权限问题。

+0

在这种情况下,OP忘了附加最后一个'/'。我现在可以编辑。即使从Sharepoint访问,它仍然适用于OP。 –

+0

啊,我现在看到了。 OP正试图保存到'https://xxxxxx.sharepoint.com/sites/xxxxx/Shared DocumentsMyAwesomeWorkbook.xlsm' –

+0

没错。如果OP试图从现有文件中保存新文件,我的原始建议将工作得很好。此解决方案也可以很好地工作,但不够健壮(它只适用于此*一个位置,而不是多个位置)。 –