Как убедиться, что книга макросов не закрывается при закрытии других книг - PullRequest
0 голосов
/ 24 октября 2018

Сценарий

У меня есть пользовательская форма, посредством которой книга Excel будет скрыта при открытии с использованием следующего метода Application.Visible = False.Это коды

Моя пользовательская форма

enter image description here

show excel кнопка Commandbutton1
hide excel кнопка Commandbutton2

Эта рабочая книга

enter image description here

Коды

Private Sub Workbook_Open()
  Call hideExcel
  UserForm1.Show
End Sub

Форма пользователя1

enter image description here

Коды

Private Sub CommandButton1_Click()
    If Workbooks.Count > 1 Then
        Windows(ThisWorkbook.Name).Visible = True
    Else
        Application.Visible = True
    End If
End Sub
Private Sub CommandButton2_Click()
    Call hideExcel
End Sub
Sub UserForm_Initialize()
    Call hideExcel
End Sub
Private Sub UserForm_Terminate()
    If Workbooks.Count > 1 Then
        Windows(ThisWorkbook.Name).Visible = True
    Else
        Application.Visible = True
    End If
End Sub
Sub userform_click()
    Call hideExcel
End Sub

Модуль

enter image description here

Коды

Sub hideExcel()
    If Workbooks.Count > 1 Then
        Windows(ThisWorkbook.Name).Visible = False
    Else
        Application.Visible = False
    End If
End Sub

Проблема

Проблема, с которой я сталкиваюсь:

  1. Откройте мой макрос и активируйте форму пользователя.Позволяет назвать этот файл A
  2. Затем откройте другую рабочую книгу.Позволяет назвать этот файл B
  3. Попытка закрыть файл B, пока рабочая книга A скрыта.Но есть приглашение закрыть файл A, и в конечном итоге все Excel будут закрываться, включая мой файл макроса A.

Кто-нибудь знает, в чем здесь проблема?

1 Ответ

0 голосов
/ 24 октября 2018

Я не понимаю, где проблема?Если вы закрываете последнюю видимую (не скрытую) книгу, Excel также пытается закрыть все остальные открытые книги (даже если они скрыты).И я думаю, что это нормальное поведение Excel.Вы можете избежать отображения приглашения, например, установив свойство Workbook.Saved на True или установив свойство Application.DisplayAlerts на False, или просто сохранив книгу перед закрытием.

Если вы нене хотите закрывать скрытую книгу, вам просто нужно сделать ее видимой перед закрытием второй книги.

...