2015-12-09 3 views
0

Я пытаюсь проверить, открыт ли файл рабочей книги ниже в режиме редактирования, когда код пытается запустить. Я пытаюсь планировать, когда это будет ошибка, потому что кто-то еще находится в файле. Мне нужно, чтобы Workbook.Open был открыт как ReadOnly = False, потому что, если в нем нет, мне нужно сохранить его после обновления.Как обойти предупреждение «Только для чтения» SharePoint при открытии книги Excel с помощью VBA.

Проблема, с которой я столкнулся, заключается в том, что даже с DisplayAlerts = False при запуске линии Workbook.Open я получаю приглашение на экране, в котором говорится: «Файл заблокирован для редактирования (некоторым пользователем). Вы хотите: просмотреть прочитанный - копировать или сохранять и редактировать копию файла ». Существует также флажок, указывающий «Получить уведомление, когда файл сервера доступен». DisplayAlerts = False, похоже, не отменяет приглашение SharePoint. Любые идеи о том, почему это не отменяет пром? Я хочу добраться до точки в коде, где он пытается открыть в режиме редактирования, и не может, а затем переходит к строке If Activeworkbook.Readonly Then и выходит из подкаталога. Сейчас он останавливается и ждет выбора в приглашении SharePoint.

Sub SendFCSpec() 

MsgBox ("Please wait while your comments are sent to the database.") 
ActiveSheet.Unprotect Password:="BAS1" 
'Turn Screen Updating and Alerts off 
Application.ScreenUpdating = False 
Application.DisplayAlerts = False 

'Disable Macros on AutoOpen of the Excel Workbook 
Application.AutomationSecurity = msoAutomationSecurityForceDisable 
Workbooks.Open Filename:="http://Sharepoint.com/QA/FC%20QA%20Workshop/Databases/Dec/FC%20Spec%20Database.xlsm", _ 
UpdateLinks:=3, ReadOnly:=False 
If ActiveWorkbook.ReadOnly Then 
    ActiveWorkbook.Close 
    MsgBox "Another user has the database open. Unable to submit comments at this time." 
    Application.AutomationSecurity = msoAutomationSecurityLow 
    Exit Sub 
End If 
Application.AutomationSecurity = msoAutomationSecurityLow 

ActiveWorkbook.Save 
ActiveWorkbook.Close 

ActiveSheet.Select 
ActiveSheet.Protect Password:="BAS1", DrawingObjects:=True, Contents:=True, Scenarios:=True _ 
    , AllowFormattingCells:=True, AllowFormattingColumns:=True, _ 
    AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True 
Application.ScreenUpdating = True 
Application.DisplayAlerts = True 
MsgBox ("Comments have been saved to the Database. Thanks") 
End Sub 

ответ

1

Замените эту строку:

Workbooks.Open _ 
    fileName:="http://Sharepoint.com/QA/FC%20QA%20Workshop/Databases/Dec/FC%20Spec%20Database.xlsm", _ 
    UpdateLinks:=3, ReadOnly:=False 

С этой линией:

Workbooks.Open _ 
    fileName:="http://Sharepoint.com/QA/FC%20QA%20Workshop/Databases/Dec/FC%20Spec%20Database.xlsm", _ 
    UpdateLinks:=3, ReadOnly:=False, Notify:=False 
+0

Wow. Я прочитал руководство по книге Workbook.Open и полностью не видел остальных объяснений Notify. Благодаря! – arooney88

Смежные вопросы