CheckOut (Sharepoint) Word Document from within Excel VBA

房东的猫 提交于 2019-12-14 02:28:27

问题


Good Morning All,

I have fought with this for a few days now, and have not yet found a suitable solution, so I hope somebody can put me out of my misery!

From within an excel document, I have 3 buttons to check out and open 3 documents from a Microsoft Sharepoint Server. 2 files are Excel workbooks, and one is a Word document.

The excel files work absolutely fine, but the Word document always returns 'False' when the .CanCheckOut statement is reached, even though I can manually check it out on MOSS, have the correct permissions etc. I have added the Microsoft Word 11.0 Object Library reference in my Excel VBA.

Here is my code for the excel ones:

Sub CheckOutXL(FullPath As String)

Dim xlApp As Object
Dim wb As Workbook
Dim xlFile As String
xlFile = FullPath

Set xlApp = CreateObject("Excel.Application")

'Determine if workbook can be checked out.
If Workbooks.CanCheckOut(xlFile) = True Then

'Check out file
Workbooks.CheckOut xlFile

'Open File
Set xlApp = New Excel.Application
xlApp.Visible = True
Set wb = xlApp.Workbooks.Open(xlFile, , False)

'Otherwise offer the option to open read-only
Else
 If (MsgBox("You are unable to check out this document at this time, would you like to open it read-only?", vbYesNo) = vbYes) Then
    Set xlApp = New Excel.Application
    xlApp.Visible = True
    Set wb = xlApp.Workbooks.Open(xlFile, , False)

 End If
End If

and for the Word one:

Sub CheckOutDoc(FullPath As String)

If Documents(docFile).CanCheckOut = True Then 'This is the one that returns FALSE

    Documents.CheckOut docFile
'    Set objWord = CreateObject("Word.Application")  'The commented out section was
'    objWord.Visible = True                          'a second way I tried to open
'    objWord.Documents.Open docFile                  'the file.
    Documents.Open Filename:=docFile
Else
 If (MsgBox("You are unable to check out this document at this time, would you like to open it read-only?", vbYesNo) = vbYes) Then
    Documents.Open Filename:=docFile
 End If
End If

End Sub

These are both called using a simple line for each button as such:

Private Sub btnTrend_Click()

Call CheckOutXL("FullPathOfTheFileInHere.xls")

End Sub

Any help massively appreciated!! Thanks


回答1:


We are having the same issue. Can you try this:

If CBool(Documents(docFile).CanCheckOut) = True Then



来源:https://stackoverflow.com/questions/23424233/checkout-sharepoint-word-document-from-within-excel-vba

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!