У меня есть код VBA для запуска нескольких операций. Он разблокирует Workbook перед запуском и защищает после выполнения операции. Однако иногда код сталкивается с ошибкой из-за того, что пользователь открывает окна или что-то делает в фоновом режиме. Мне бы хотелось, чтобы не отображалось какое-либо стандартное сообщение Visual Basic, например «Ошибка компиляции», но мое настраиваемое сообщение всякий раз, когда код запускается с какой-либо ошибкой и использует ThisWorkbook.Protect Password:="123456", Structure:=True, Windows:=False
.
P.S. Время перерыв из-за операционной системы на моем компьютере не может обрабатывать процессы так быстро.
Sub TryToDoEverything()
Application.ScreenUpdating = False
ThisWorkbook.Unprotect Password:="123456"
ufProgress.LabelProgress.Width = 0
ufProgress.Show
FractionComplete (0) 'Next step
Worksheets("MAIN").Activate
Call MakeMyFolder
Application.Wait (Now + TimeValue("00:00:10"))
DoEvents
FractionComplete (0.1) 'Next step
If ThisWorkbook.Sheets("Other Data").Range("J2").Value = True Then
Call opentemplateWordOL
End If
If ThisWorkbook.Sheets("Other Data").Range("J2").Value = False Then
End If
DoEvents
FractionComplete (0.2) 'Next step
Application.Wait (Now + TimeValue("00:00:10"))
If ThisWorkbook.Sheets("Other Data").Range("J2").Value = True Then
Call opentemplateWordPL
End If
If ThisWorkbook.Sheets("Other Data").Range("J2").Value = False Then
End If
DoEvents
FractionComplete (0.4) 'Next step
Application.Wait (Now + TimeValue("00:00:10"))
FractionComplete (1) 'Next step
Worksheets("MAIN").Activate
Unload ufProgress
ThisWorkbook.Protect Password:="123456", Structure:=True, Windows:=False
TaskComplete.Show
Application.ScreenUpdating = True
End Sub