Проверка существования листа в рабочей книге Excel из кода VBA с помощью присвоения его объектной переменной или перебора существующих листов циклом.
Присвоение листа объектной переменной
Пользовательская функция VBA Excel для проверки существования листа в рабочей книге путем определения результата присвоения ссылки на него объектной переменной. Присвоение состоялось (SheetExist = True) – искомый лист существует, произошла ошибка и присвоение не состоялось (SheetExist = False) – лист не существует.
1 2 3 4 5 6 |
Function SheetExist(WbName As String, ShName As String) As Boolean Dim mySheet As Worksheet On Error Resume Next Set mySheet = Workbooks(WbName).Sheets(ShName) SheetExist = Not mySheet Is Nothing End Function |
Аргументы функции SheetExist:
- WbName – имя открытой рабочей книги, в которой ищется лист.
- ShName – имя искомого рабочего листа.
Перебор существующих листов циклом
Проверка существования рабочего листа в книге Excel с помощью перебора существующих листов циклом VBA и сравнения их имен с именем искомого листа. Совпадение найдено (SheetExist = True) – искомый лист существует, совпадение не найдено (SheetExist = False) – лист не существует.
1 2 3 4 5 6 7 8 9 |
Function SheetExist(WbName As String, ShName As String) As Boolean Dim mySheet As Worksheet For Each mySheet In Workbooks(WbName).Sheets If mySheet.Name = ShName Then SheetExist = True Exit Function End If Next End Function |
Пример проверки существования листа
Пример проверки существования искомого листа в рабочей книге Excel с помощью пользовательской функции VBA SheetExist:
1 2 3 4 5 6 7 |
Sub Primer() If SheetExist(ThisWorkbook.Name, "Лист1") Then MsgBox "Лист существует" Else MsgBox "Лист не существует" End If End Sub |
Имя сторонней открытой книги должно быть указано вместе с расширением:
1 2 3 |
... If SheetExist("Книга2.xlsm", "Лист2") Then ... |
Обратите внимание, если книга, имя которой указано в параметре WbName закрыта или не существует, будет сгенерирована ошибка.
Чтобы функция проверки существования рабочего листа SheetExist была доступна из модуля любой книги Excel на вашем компьютере, разместите ее в Личной книге макросов.