Vba: перевірте, чи відкрита книга (з прикладом)


Ви можете використовувати наведений нижче синтаксис у VBA, щоб перевірити, чи відкрита певна книга.

 SubCheckWorkbookOpen ()

Dim resultCheck As Boolean
Dim wb As Workbook
Dim specific_wb As String
    
On Error Resume Next
specific_wb = InputBox("Check if this workbook is open:")
    
Set wb = Application.Workbooks.Item(specific_wb)
resultCheck = Not wb Is Nothing

If resultCheck Then
    MsgBox “Workbook is open”
Else
MsgBox “Workbook is not open”
End If
    
End Sub

Під час запуску цього макросу з’явиться поле введення, де користувач може ввести ім’я книги Excel, і макрос створить вікно повідомлення з одним із таких результатів:

  • «Файл відкрито»
  • «Файл не відкрито»

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: як перевірити, чи відкрита книга за допомогою VBA

Припустімо, у нас зараз відкриті дві робочі книги з такими іменами:

  • моя_робоча книга1.xlsx
  • моя_робоча книга2.xlsx

Припустімо, ми хочемо перевірити, чи відкрита робоча книга під назвою my_workbook1.xlsx .

Для цього ми можемо створити такий макрос:

 SubCheckWorkbookOpen ()

Dim resultCheck As Boolean
Dim wb As Workbook
Dim specific_wb As String
    
On Error Resume Next
specific_wb = InputBox("Check if this workbook is open:")
    
Set wb = Application.Workbooks.Item(specific_wb)
resultCheck = Not wb Is Nothing

If resultCheck Then
    MsgBox “Workbook is open”
Else
MsgBox “Workbook is not open”
End If
    
End Sub

Коли ми запустимо цей макрос, з’явиться вікно, де я можу ввести my_workbook1.xlsx у поле введення:

Щойно я натисну кнопку «ОК» , макрос створить таке вікно повідомлення:

Макрос правильно відображає «Книга відкрита», щоб вказати, що книга з такою назвою наразі відкрита.

А тепер припустімо, що я ввів назву книги, яка зараз не відкрита:

Щойно я натисну кнопку «ОК» , макрос створить таке вікно повідомлення:

Макрос правильно відображає «Книга не відкрита», щоб вказати, що книга з такою назвою наразі не відкрита.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:

VBA: Як підрахувати кількість аркушів у робочій книзі
VBA: як вставити кілька стовпців
VBA: як вставити кілька рядків

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *