Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как проверить существует ли лист Excel c определенным названием / 7 сообщений из 7, страница 1 из 1
01.04.2004, 13:51
    #32465505
Meg
Meg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить существует ли лист Excel c определенным названием
Пишу вторую в жизни программу на VB - макрос для Excel
В цикле перебираются по очереди все листы книги с названиями, соотв. элементам массива. Однако если одного из таких листов нет - то сразу возникает ошибка, т.к. происходит обращение к несуществующему листу.
Есть ли оператор, с помощью которого можно проверить, существует ли лист Excel c определенным названием? Какие еще есть варианты решения вопроса?
...
Рейтинг: 0 / 0
01.04.2004, 14:30
    #32465602
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить существует ли лист Excel c определенным названием
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Function GetWorksheetByName(ByRef shName As String) As Excel.Worksheet
Dim sht As Worksheet                        'переменная цикла
For Each sht In ThisWorkbook.Worksheets     'цикл по всем листам книги
    If shName = sht.Name Then               'найден требуемый лист:
        Set GetWorksheetByName = sht        'возвращаем ссылку на него
        Exit Function                       'и выходим "не с пустыми руками"
    End If
Next sht                                    'все листы перебраны...
Set GetWorksheetByName = Nothing            'а нужного - нет!
End Function

Sub main()
Dim sh As Worksheet
Set sh = GetWorksheetByName( "Лист3" )
End Sub
...
Рейтинг: 0 / 0
01.04.2004, 14:32
    #32465609
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить существует ли лист Excel c определенным названием
Вот фрагмент перечисляющий листы книги:

Public CurXlsBook As Excel.Workbook
...
'загрузка списка имён листов
Public Sub LoadGrList()
Dim retTableCount As Long
retTableCount = CurXlsBook.Sheets.Count
For i = 0 To retTableCount - 1
Debug.Print CurXlsBook.Sheets(i + 1).Name
Next i
End Sub[SRC][/SRC]
...
Рейтинг: 0 / 0
01.04.2004, 15:03
    #32465686
Meg
Meg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить существует ли лист Excel c определенным названием
Огроменное спасибо! Особенно Processor за очень понятное изложение!!!
marvan, если найдете минутку - напишите, что происходит в строках
retTableCount = CurXlsBook.Sheets.Count
Debug.Print CurXlsBook.Sheets(i + 1).Name
...
Рейтинг: 0 / 0
01.04.2004, 15:53
    #32465812
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить существует ли лист Excel c определенным названием
Public Function FindList(SheetName As String) As Boolean
FindList = False
For i = 1 To Sheets.Count ' Перечисляем листы книги
If Sheets(i).Name = SheetName Then 'Сравниваем имя текущего листа с SheetName
FindList = True
Exit Function
End If
Next i
End Function

Public Sub Test()
If FindList("Лист3") = True Then 'Проверить наличие листа с именем Лист3
MsgBox ("есть такой")
End If
End Sub
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
22.07.2005, 17:42
    #33180732
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить существует ли лист Excel c определенным названием
можно воспользоваться
On error resume next
Set x = Sheets(a)
if err then msgbox "Лист " & a & " не сущуствует"
err.clear
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
21.08.2014, 08:59
    #38725181
balbes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить существует ли лист Excel c определенным названием
hi vkodor,

огромное спасибо
оч. выручил
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как проверить существует ли лист Excel c определенным названием / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]