powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как проверить существует ли лист Excel c определенным названием
7 сообщений из 7, страница 1 из 1
Как проверить существует ли лист Excel c определенным названием
    #32465505
Meg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Meg
Гость
Пишу вторую в жизни программу на VB - макрос для Excel
В цикле перебираются по очереди все листы книги с названиями, соотв. элементам массива. Однако если одного из таких листов нет - то сразу возникает ошибка, т.к. происходит обращение к несуществующему листу.
Есть ли оператор, с помощью которого можно проверить, существует ли лист Excel c определенным названием? Какие еще есть варианты решения вопроса?
...
Рейтинг: 0 / 0
Как проверить существует ли лист Excel c определенным названием
    #32465602
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
Как проверить существует ли лист Excel c определенным названием
    #32465609
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот фрагмент перечисляющий листы книги:

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
Как проверить существует ли лист Excel c определенным названием
    #32465686
Meg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Meg
Гость
Огроменное спасибо! Особенно Processor за очень понятное изложение!!!
marvan, если найдете минутку - напишите, что происходит в строках
retTableCount = CurXlsBook.Sheets.Count
Debug.Print CurXlsBook.Sheets(i + 1).Name
...
Рейтинг: 0 / 0
Как проверить существует ли лист Excel c определенным названием
    #32465812
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Период между сообщениями больше года.
Как проверить существует ли лист Excel c определенным названием
    #33180732
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно воспользоваться
On error resume next
Set x = Sheets(a)
if err then msgbox "Лист " & a & " не сущуствует"
err.clear
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как проверить существует ли лист Excel c определенным названием
    #38725181
balbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi vkodor,

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


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