Оформить заказ в 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
Спасибо заранее за вашу помощь.
- Кто-нибудь запустил макрос Excel из SharePoint?
- VBA для загрузки файла Excel в Sharepoint. Ошибка времени выполнения «1004»
- TFS2010: открытие некоторых отчетов Excel дает ошибку TF80076
- Импорт книг Excel из списка Sharepoint
- Интеграция пользовательских баз данных с MOSS 2007
- Экспорт PowerPivot в Интернет
- Можно ли экспортировать список SharePoint в файл Excel, разделенный на отдельные листы?
- Открыть лист Excel на странице точки обмена / сам веб-сайт
- VBA сохраняет Excel в Sharepoint замерзает навсегда с помощью экрана, показывающего «Получение списка доступных типов и свойств контента ...»
- Шаблон Excel в sharepoint - как открыть как новый файл из шаблона?
- sharepoint 2013 & Excel: мы не можем показывать эти функции в браузере: текстовые запросы
- Импорт таблицы с фотографиями в sharepoint
- VBA - Проверка папки / файла существует в SharePoint
Я нашел через пробную версию и ошибку, что 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