使用VBA从Sharepoint签出并打开受保护的Excel工作簿

使用VBA从Sharepoint签出并打开受保护的Excel工作簿,vba,excel,sharepoint,password-protection,Vba,Excel,Sharepoint,Password Protection,我是一个相对来说比较新手的程序员,这是我关于堆栈的第一个问题,请耐心听我说: 我正在尝试在一个电子表格上编写宏,该宏将自动更新SharePoint上的另一个电子表格。我遇到的问题是,此文档受密码保护 我已经能够使用vba打开文档,但为了将更改保存到SharePoint网站,我还需要签出工作簿并将其签回。以下是我目前掌握的代码: Sub Open_Document() 'Declare and define variables Dim document As Workbook Dim docum

我是一个相对来说比较新手的程序员,这是我关于堆栈的第一个问题,请耐心听我说:

我正在尝试在一个电子表格上编写宏,该宏将自动更新SharePoint上的另一个电子表格。我遇到的问题是,此文档受密码保护

我已经能够使用vba打开文档,但为了将更改保存到SharePoint网站,我还需要签出工作簿并将其签回。以下是我目前掌握的代码:

Sub Open_Document()

'Declare and define variables
Dim document As Workbook
Dim documentName As String
documentName = "\\anonymousSharepointSite\document.xlsm"

'If document is not already checked out, check out and open
If Workbooks.CanCheckOut(documentName) Then
    Workbooks.CheckOut (documentName)
    Set document = Workbooks.Open(fileName:=documentName, Password:="XXX")
Else
    MsgBox ("Can't check out")
End If

End Sub
我的目标是让程序在不询问用户密码的情况下打开并签出“文档”。到目前为止,Workbooks.Open方法包含Password参数,工作正常,但Workbooks.CheckOut方法正在调用一个额外的密码提示,我不确定如何管理该提示

在我的研究中,除了文件名之外,我还没有找到Workbooks.CheckOut的任何其他参数。例如,我尝试了以下操作,但未定义密码参数

Workbooks.Checkout Filename:=document, Password:="XXX"
我做错了什么?如何使用VBA输入此文档的密码,就像使用工作簿.Open方法一样

就像我说的,这是我第一次在Stack上问问题,所以如果问题在任何方面不清楚或含糊不清,我道歉。如果出现混乱,我很乐意澄清


我感谢你的帮助

不是SharePoint开发人员,但硬编码密码已经不是一个好主意;签出机制可能需要一个经过身份验证的用户,这样它就可以知道用户是否有权签出文件-通过绕过该提示,您将有效地打开一个安全漏洞,更不用说,从那时起,该宏进行的每一次签出都将使用您提供的任何人的凭据/硬代码进行,这使得日志在发生违规时毫无用处。如果用户已经在SharePoint网站上拥有经过身份验证的会话,是否会收到pwd提示?这可能会对您有所帮助:不是SharePoint开发人员,但硬编码密码已经不是一个好主意;签出机制可能需要一个经过身份验证的用户,这样它就可以知道用户是否有权签出文件-通过绕过该提示,您将有效地打开一个安全漏洞,更不用说,从那时起,该宏进行的每一次签出都将使用您提供的任何人的凭据/硬代码进行,这使得日志在发生违规时毫无用处。如果用户在SharePoint网站上已经有经过身份验证的会话,是否会收到pwd提示?这可能会帮助您: