Страница: 1 |
Страница: 1 |
Вопрос: Проверка наличия листа в книге
Добавлено: 02.07.08 18:43
Автор вопроса: Юра
Всем привет! Есть такая проблемка. Программа в процессе работы обращается к листам в книге. Но вот в чем дело. Ни в каждой книге есть лист с заданным именем. Поэтому на строке Sheets(.....).Select выдается ошибка, что лист не найден. Вполне логично. Но как сделать так, чтоб прогрмма сначало проверила есть ли лист с таким именем и по результатам проверки выполняла то или иное действие. Короче говоря, как узнать,есть ли лист с конкретным именем в книге до того как выскочет сообщение об ошибке.
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
Boron
Вопросов: 5
Ответов: 12
Профиль | | #1
Добавлено: 03.07.08 00:07
Только хотел создать тему с немного другой проблемой, но сутью той же.
Вообщем присоединяюсь - кто может подсказать решение проблемы проверки листа на существование? Часа два голову ломаю, ничего дельного не выходит.
Номер ответа: 2
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #2
Добавлено: 03.07.08 07:04
Dim obj As Object
On Error GoTo ErrorHandler:
Set obj = Sheets(MySheet)
SheetExists = True
Exit Function
ErrorHandler:
SheetExists = False
End Function
Номер ответа: 3
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #3
Добавлено: 03.07.08 20:59
А был ещё более примитивный способ, но длиннее — проверить все листы в книги, обращаясь к ним по индексу. Здесь можно и не просто "существует или нет", а проверить и на какие-либо условия.
Номер ответа: 4
Автор ответа:
Boron
Вопросов: 5
Ответов: 12
Профиль | | #4
Добавлено: 03.07.08 22:29
Jasmin, спасибо за ответ!
ADSemenov.ru, если не трудно, не мог бы написать этот вариант?
Номер ответа: 5
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #5
Добавлено: 04.07.08 00:10
Я написал, но не через индекс, а через просто коллекцию листов. Но, во всяком случае, через объект "s" Вам доступны все свойства листа, включая его содержимое.
For Each s In Worksheets
MsgBox s.Index
Next
Если захотите через индекс, то количество всех листов доступно через Worksheets.Count.
Номер ответа: 6
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #6
Добавлено: 04.07.08 00:11
Похоже, получается даже не длиннее, чем у предыдущего автора.
Номер ответа: 7
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #7
Добавлено: 04.07.08 06:50
Каждый выбирает удобное для него решение. ))