Оформить заказ в VBA

У меня есть VBA, я пытаюсь проверить учебник перед внесением изменений. Код VBA находится в собственной рабочей книге и активируется пользователем, открывающим другую рабочую книгу и выбрав кнопку, которая выполняет код для изменения книги. Сначала я хочу проверить, проверена ли рабочая книга. Проблема, которую я получаю, – Workbooks.CanCheckOut (ActiveWorkbook.FullName) всегда возвращает false, даже если рабочая книга не проверена.

If Workbooks.CanCheckOut(ActiveWorkbook.FullName) = True Then Workbooks.CheckOut (ActiveWorkbook.FullName) MsgBox "This workbook has been checked out" Process = True ElseIf ActiveWorkbook.CanCheckIn = False Then 'if not checked out Process = False MsgBox ("The Document may not be checked out, Import Process is ending.") Else Process = True End If 'If CanCheckin = False 

Спасибо заранее за вашу помощь.

Я нашел через пробную версию и ошибку, что Workbooks.CanCheckOut (Filename:= FullName) где FullName является URL-адресом для файла SharePoint, работает только для файлов, которые не открыты в текущем экземпляре Excel.

Метод всегда будет возвращать False если файл открыт в текущем экземпляре Excel, что, очевидно, имеет место здесь.

Workbooks.CheckOut (ActiveWorkbook.FullName) открывает файл, проверяет его и затем необъяснимо закрывает файл. Таким образом, открытие и проверка файла SharePoint становится трехэтапным процессом.

 Sub CheckOutAndOpen() Dim TestFile As String TestFile = "http://spserver/document/Test.xlsb" If Workbooks.CanCheckOut(TestFile) = True Then Workbooks.CheckOut(TestFile) Workbooks.Open (TestFile) Else MsgBox TestFile & " can't be checked out at this time.", vbInformation End If End Sub 

Это все немного интуитивно понятное, потому что при работе с файлами SharePoint вручную вы должны открыть их, чтобы проверить, можно ли их проверить, а затем выполнить операцию выписки.

Ни MSDN, ни Excel VBA не упоминают, что метод Workbooks.CanCheckOut (Filename:= FullName) всегда возвращает False, если файл открыт в текущем экземпляре Excel.

 Sub CheckOutAndOpenFromSharePoint() Dim FilePath As String Dim FileName as string FilePath = "http://Sharepoint site/Folder Name On SharePoint Site/" FileName = "Testing.xlsx" If Workbooks.CanCheckOut(FilePath & FileName) = True Then Workbooks.CheckOut "http://Sharepoint%20site/Folder%20Name%20On%20SharePoint%Site/Testing.xlsx" Workbooks.Open Filename:=FilePath & FileName Else MsgBox FileName & " can't be checked out at this time.", vbInformation End If End Sub 
  • Обновить набор данных Excel в SharePoint Online с помощью ошибки PowerShell 403
  • Microsoft Graph API для SharePoint в Python: Microsoft.SharePoint.Client.UnknownError
  • Как загрузить список SharePoint, который охватывает несколько веб-страниц
  • Открыть конкретный рабочий лист в Excel
  • 2 Way Sync Excel 2013 и таблица SharePoint 2013
  • Скрыть функциональность в excel-сервисах
  • Как отключить атрибут только для чтения для нескольких файлов Excel в sharepoint?
  • Чтение данных из документа Excel, хранящегося в Sharepoint?
  • Выберите лист Excel при открытии из IIS
  • SharePoint 2010 добавляет скрытые символы в экспорт Excel
  • Можно ли проверить через VBA, если файл существует на сайте sharepoint?
  • Давайте будем гением компьютера.