Скрыть только конкретную книгу, не затрагивая другую книгу - PullRequest
0 голосов
/ 21 ноября 2018

Уже обведен интернет и имеет тот же ответ, который не сработал, как я хотел.

В: Как скрыть рабочую книгу и показать форму пользователя, не скрывая другую книгу?

Этот кодэто хорошо, но скрывает другие книги.

Application.Visible = False

Этот код плох, поскольку он все еще показывает приложение Excel.

Workbooks("Workbook Name.xlsm").Window(1).Visible = False

Также не работает.

ActiveWorkbook.Visible = False

Наконец, метод инструмента, перейдя в инструменты> параметры> вкладка «Общие»> игнорировать другое приложение.У меня нет этой опции на моем VBA

Это код, который я использовал.

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

и в модуле ThisWorkbook

Private Sub Workbook_Open()
UserForm1.Show
End Sub

1 Ответ

0 голосов
/ 21 ноября 2018

Правильный способ скрыть одну конкретную книгу -

Application.Windows(ThisWorkbook.Name).Visible = False

, где ThisWorkbook.Name можно заменить на нужное имя книги, например "MyWb.xlsm".

  • Если естьпри открытии нескольких книг одновременно будет скрыта указанная книга (и окно ее приложения).
  • Если это единственная открытая книга, она скроет указанную книгу ( без приложения).window ).

Если вы хотите скрыть окно приложения, вы должны использовать

Application.Visible = False

Хитрость заключается в том, чтобы объединить их

If Application.Windows.Count > 1 Then 'more than one workbook open: Hide workbook only
    Application.Windows(ThisWorkbook.Name).Visible = False
Else 'only one workbook open: Hide application
    Application.Visible = False
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...