Я создал пользовательскую форму, и она отлично работает.Пользовательская форма настроена на автоматическое открытие и запуск при нажатии / открытии файла Excel.Он также автоматически скрывает приложение Excel, так что пользователь может взаимодействовать только с пользовательской формой, а не с книгой.Теперь, последнее, что я хочу сделать, - это добавить кнопку в форму, чтобы пользователь мог получить доступ к книге при желании.В настоящее время у меня есть этот код, который отображает окно сообщения до выхода из пользовательской формы.Когда пользователь выбирает «Да» для вопроса, он открывает приложение «Книга / Excel», а затем неожиданно запрашивает окно с надписью «Хотите сохранить изменения в« FileName.xlsm »?»с опциями «Сохранить, Не сохранять, Отмена».
Private Sub btnExcel_Click()
answer = MsgBox("Are you sure you want to Exit and access the Excel
Spreadsheet?", vbYesNo + vbQuestion, "Warning!")
If answer = vbYes Then
UserForm1.Hide
Application.Visible = True
End If
End Sub
Хотелось бы узнать, есть ли код, чтобы он автоматически выбирал «Отмена», чтобы пользователь мог просто получить доступ к книге и не застать врасплох этот вопрос.Я пробовал это, но это не мешает всплывающей подсказке.
Private Sub btnExcel_Click()
answer = MsgBox("Are you sure you want to Exit and access the Excel
Spreadsheet?", vbYesNo + vbQuestion, "Warning!")
If answer = vbYes Then
Application.DisplayAlerts = False
UserForm1.Hide
Application.Visible = True
End If
End Sub
Кроме того, я попытался вставить
ThisWorkbook.Save
Однако, это говорит о том, что SaveChanges предлагает сохранить, а затем завершает / закрывает Excel.Если кто-нибудь знает, как сказать приглашению выбрать «Отмена», чтобы оно выходило из приглашения и оставалось в рабочей книге, это было бы здорово.TIA
РЕДАКТИРОВАТЬ: у меня есть этот код в ThisWorkbook , и он включает в себя код для Workbook_Open .Этот код должен открывать эту конкретную книгу в отдельном приложении Excel, чтобы другие книги Excel могли открываться, не будучи скрытыми из-за того, что пользовательская форма была скрыта при запуске.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'important to reset this
Application.IgnoreRemoteRequests = False
End Sub
Private Sub Workbook_Open()
'need to use ontime to allow xl to initialise fully
Application.OnTime Now, "ThisWorkbook.OnlyOneOfMe"
End Sub
Private Sub OnlyOneOfMe()
Dim XlApp As Excel.Application
On Error GoTo BAD
With Application
If Me.ReadOnly Or .Workbooks.Count > 1 Then
Me.ChangeFileAccess Mode:=xlReadOnly
Set XlApp = New Excel.Application
XlApp.Visible = True
XlApp.Workbooks.Open (Me.FullName)
GoTo BAD
Else
'stop opening from explorer (but not from excel)
.Visible = False
.IgnoreRemoteRequests = True
UserForm1.Show
.Visible = True
.Quit
End If
Exit Sub
End With
BAD: If Err Then MsgBox Err.Description, vbCritical, "ERROR"
Set XlApp = Nothing
Me.Close False
End Sub